枚举除法:
1.\(\left\lfloor\frac{n}{i}\right\rfloor\) 只有\(O\left(\sqrt{n}\right)\) 种取值。
2.对于 \(i\) , \(\left\lfloor\frac{n}{\left\lfloor\frac{n}{i}\right\rfloor}\right\rfloor\) 是与 \(i\) 被 \(n\) 除并下取整取值相同的一段区间的右端点。
3.一个很有用的性质:\(\left\lfloor\frac{n}{ab}\right\rfloor=\left\lfloor\frac{\left\lfloor\frac{n}{a}\right\rfloor}{b}\right\rfloor=\left\lfloor\frac{\left\lfloor\frac{n}{b}\right\rfloor}{a}\right\rfloor\)
应用:
求\(\mu\)(莫比乌斯函数)的前缀和:\(S(n) = 1 - \sum_{i=2}^n S(\lfloor \frac{n}{i} \rfloor)\)。
求\(\varphi\)(欧拉函数)的前缀和:\(S(n) = \frac{n(n+1)}{2} - \sum_{i=2}^n S(\lfloor \frac{n}{i} \rfloor)\)。
还有求各种积性函数的前缀和....
求这些积性函数的前缀和都可以使用杜教筛和洲阁筛。前者 \(O(n^{2/3})\) 和后者 \(O(\frac{n^{3/4}}{logn})\) ,一般情况下,洲阁筛的常数和复杂度都更加优秀。但现在好像有种比洲阁筛更优秀一点的筛法。(https://post.icpc-camp.org/d/782-spoj-divcnt3/2)(可能要科学上网...)
在这类问题中我们一般可以用线性筛预处理前 \(O(n^{2/3})\)左右可以使复杂度更优秀一些,一般会使用记忆化搜索和哈希表,map也可以代替哈希表。
posted @
2018-02-23 21:15
LzyRapx
阅读(
582)
评论()
编辑
收藏
举报