题面 根据唯一质数分解定理可得,一个正整数 \(n=\prod_{i=1}^k p_i^{c_i}\) ,设 \[f(n)=\frac{n}{\prod_{i=1}^k c_i} \]给定 \(n\) ,求: \[\sum_{i=1}^n f(i) \]数据范围:\(n\le 10^{12}\) 。 题解 数论好题!从没碰到过的类型! 首先要注意到 \(f(n)\) 是一个积性函数,碰到积性函数的前缀
written on 2022-05-16 开始拿到这题时,很明显是数据结构题,但苦于找不到一个合适的数据结构。 那么对于这样的一道题,正解是根号分治。根号分治,顾名思义,就是将询问对象分成 \(\leq \sqrt n\) 的部分 与 \(\geq \sqrt n\) 的部分,分别进行处理。 对于前一部分,我们可以通过每一次都处理
函数式编程 高阶函数 map() map接受一个函数和一个可迭代对象(Iterable),返回一个map对象(Iterator) def f(x): return x*x list(map(f, [1,2,3])) #1,4,9 reduce() reduce接受一个函数(这个函数只能接受两个参数)和一个可迭代对象(Iterable),结果如下: reduce(f, [x1, x2, x3, x4]
实数二分模板题 实数二分与整数二分差不多,但要注意精度。 首先,我们知道,答案在 \(-10000 \sim 10000\) 之间。 如何判断在区间内能否二分呢?那就需要运用到二分的二段性了。 我们可以把这个区间分成两部分: 左区间 $ < \sqrt[3]{n}$; 右区间 $ \geq \sqrt[3]{n}$。 具体步骤: 找中间
1. 快速幂 考虑求 $a^b \operatorname{mod} p$ ,$p$ 是质数 用乘法累乘实在是太慢了,所以我们要找出更优秀的算法 不妨将 $b$ 分解为二进制,比如 $(11)_{10}$ 分解成 $(1011)_2$ 那么 $11=8+2+1$ ,也就是 $a^{11}=a^{8+2+1}=a^8a^2a^1$ 又发现 $a^8=(a^4)^2$ ,$a^4=(a^2)^2 \cdots$ 那
配一个 \((\frac{1-\sqrt{5}}{2})^n\)。为什么不是 \(\frac{\sqrt{5}-1}{2}\)?因为根号难处理需要消掉: \[f_n=(\frac{1+\sqrt{5}}{2})^n+(\frac{1-\sqrt{5}}{2})^n \]考虑把两边的 GF 都扒出来,设 \(\alpha=\frac{1+\sqrt{5}}{2},\beta=\frac{1-\sqrt{5}}{2}\): \[F(x)=\frac{1}{1-
前言 感谢 yzh、wjy、lsc、qyb 等一众大奆的大力支持 本人DS就是个傻逼,博客几乎没有任何技术含量,各位想提升自己熟练度的dalao请移步以上任意一位的博客。本文试着讲清楚各种莫队的基本思路,有对各种莫队复杂度的口胡证明,同时会不定期放一些例题。 莫队,是一种优雅的暴力,有着优秀的
生成函数 毒。 定义:对于一个序列\(\{ a_i \}\),我们构造一个函数取表示它。 设 \[f(x)=a_0x^0+a_1x+a_2x^2+...+a_n x^n \]那么其中每个系数 \(a_i\) 也就对应了序列中的 \(a_i\)。显然其中的\(x\)对于整个序列表示并没有什么贡献与影响,那么称这种函数为形式幂级数。 那么为什么我
简介 python相比较其他语言,在效率上会略有劣势,因此,我们在实现完功能后更应该去对python代码进行优化,减少不必要的消耗。 代码优化原则 不要过早的去优化,首先保证一个正确的程序,再使程序变快 比 先是一个快的程序,再保证正确容易 代码优化的代价,任何代码优化都需要时间和空间,因此代
虽然说这是图上计数的问题,但是方法还是非常简单的。 我们只考虑无向图的情况。有向图只需要在无向图的环求出之后验证一下就行了。 我们不妨假设图中的点标号为 \(1,2,\cdots,n\)。然后我们对这个无向图的边进行定向,从度数小的点连向度数大的点,如果度数相同就从标号小的点连向标号
\(BSGS\) 算法,又称 “北(\(B\))上(\(S\))广(\(G\))深(\(S\))” 算法,“拔山盖世”算法,可以在 \(O(\sqrt{n})\) 的复杂度内求解离散对数问题。 题目描述: 给定质数 \(p\) 和整数 \(a, n\),求最小的非负整数 \(m\) ,满足 \(a^m \equiv n(mod\ \ p)\) 。 算法分析: 最暴力的算法就是每句每一个 \(
1. 重要不等式 \(a^2+b^2\ge 2ab\) 2. 基本不等式 \(a\ge0,b\ge0,\dfrac{a+b}{2}\ge\sqrt{ab}\) 3. 均值不等式 \(\dfrac{2}{\frac1a+\frac1b}\le\sqrt{ab}\le\dfrac{a+b}{2}\le\sqrt{\dfrac{a^2+b^2}{2}}\) 当且仅当 \(a=b\) 时等号成立。 拓展: \(\text{调和均值:}H_{n}=\dfrac{
开根号法:素数是因子为1和本身, 如果数c不是素数,则还有其他因子,其中的因子,假如为a,b.其中必有一个大于sqrt(c) ,一个小于sqrt(c) 。所以m必有一个小于或等于其平方根的因数,那么验证素数时就只需要验证到其平方根就可以了。即一个合数一定含有小于它平方根的质因子 int isPrime(in
易错点 测试点4考察:1和1算不算一对缘分数 由于题目中提到“其中 a 和它的小弟 a−1 的立方差正好是另一个整数 c 的平方”,“另一个整数”指明隐含条件:a != c 代码 #include <iostream> #include <cstdio> #include <cmath> using namespace std; int main() { float m,n; int f
首先有一个结论,对于 \(m\) 个互不相同的模式串 \(t_i\) ,他们在文本串 \(s\) 中的出现次数之和(即 endpos 大小之和)是 \(O(|s|\sqrt {\sum |t_i|})\) 的。 证明考虑把模式串按长度分类,那么对于长度为 \(l_i\) 的一些模式串,他们在 \(s\) 中出现的次数之和至多是 \(n-l_i+1\) 。由于
题意: 给定一个无向连通图,你需要解决以下两个问题之一: 1364D: 找出一个大小为 \(\lceil \frac k2\rceil\) 的独立点集 找出一个大小不超过 \(k\) 的环 1325F: 找出一个大小为 \(\lceil \sqrt n\rceil\) 的独立点集 找出一个不小于 \(\lceil \sqrt n\rceil\) 的环 独立点集中,
素数与约数 1.算数基本定理 任何一个大于1的正整数都能唯一分解成有限个质数的乘积 写作: \[ n=p_1^{c1}p_2^{c2}······p_m^{cm} \]可以直接写作: \[ \prod_{i=1}^mp_i^{ci} \]\(pi\) 都是质数且满足 $ p1<p2<······<pm$ , \(ci\) 都是正整数。 这玩意。。。好像没啥
解决如下问题:给定 \(n\),求 \[\sum \limits_{i=1}^n \lfloor\cfrac{n}{i}\rfloor \]考虑画出 \(\cfrac{n}{i}\) 的函数图像,并将 \(\lfloor\cfrac{n}{i}\rfloor\) 相等的区间用颜色块表示出来:(取 \(n=7\)) 发现虽然 \(n=7\),但是只有 \(4\) 个带整数的块。 考虑 \[\sum \limits_{i=1}^
题面传送门 我是时代的眼泪/kk 首先我们发现这个东西显然不弱于区间顺序对,也就是说复杂度不可能低于根号,所以盲猜是个大常数根号做法。 首先这个东西看到想到容斥,我们要求的东西大概长这样: 定义\(f(x,y,l,r)\)为\((x,y)\)到\((l,r)\)中的点数,我们对于\(j\)点在\(i\)询问中的答案,
1. abs(x) 参数:数字、浮点数或者复数 返回:参数为数字或者浮点数,则返回绝对值;参数为复数,则返回复数与共轭复数乘积的平方根 注意:某复数为 1 + 2j,则共轭复数为 1 - 2j 比如:abs(1 + 2j) = sqrt((1 + 2j)(1 - 2j)) = sqrt(5)=2.236
P8349 [SDOI/SXOI2022] 整数序列 似乎还比较明显的根号分治? 复杂度 \(O(n\sqrt n \log n)\) 事实上这个复杂度一开始算出来的时候感觉不太行,然后发现开了 7s ,感觉又行了
rrusq 题目描述 点此看题 解法 考虑扫描矩形的右端点,维护所有左端点的答案。 考虑加入一个矩形的影响,可以用染色模型来理解,也就是把在这个矩形内的点染成这个矩形编号的颜色,那么查询只需要找颜色 \(\geq l\) 的点权值和即可。 考虑如何快速染色并且维护点权,一个显然的想法是颜色段
欢迎来到HowardZhangdqs的劝退小课堂。这是狭义相对论从入门到入土(建议初一以上)系列的第二个集合版,修订了大量之前未发现的错误,如果大家在阅读时发现了错误欢迎联系我 zjh@shanghaiit.com 1.1 导言 何为相对论? 相对论(Theory of relativity)是关于时空和引力的理论,主要由爱因斯坦创
Description 设 \(F_n\) 表示用 \(1\times 2\) 的骨牌填满 \(2\times n\) 的矩阵的方案数,\(G_n\) 表示用 \(1\times 2\) 的骨牌填满 \(3\times n\) 的矩阵的方案数。给出 \(l,r,k\),分别求出: \[\frac{1}{r-l+1}\sum_{n=l}^r\binom{F_n}{k} \] \[\frac{1}{r-l+1}\sum_{n=l}^r\binom{
如何迅速判断 \(n\) 是否为质数? 方法一 枚举 \(i\) 满足 \(1 < i < n\),则 \(n\) 不是质数,当且仅当全部的 \(i \nmid n\)。 时间复杂度 \(O(n)\)。 bool isp(int n) //isp = is_prime { if (n <= 1) return false; for (int i = 2; i < n; i++) if (n % i == 0) return fals