论杜教筛

杜教筛:在 $O(n^{2/3})$ 的时间内求出积性函数 $f(x)$ 的前缀和。

 

注意事项:

1. 线性预处理 $n^{2/3}$ 内的所有 $f$ 的值再开始筛。

2. 一定要用一个数组(而不是 map)来记忆化,对于所有 $d$ 记忆 $n/d$ 处的 $f$ 前缀和。

3. 如果有多次询问,用一个 unordered_map 记忆所有 $f$ 的前缀 $n$ 的值(注意不是 $d$),可以避免对于一个固定的 $n$ 多次去筛所有 $n/d$ 处的前缀和。

4. 这种题一般 $n \leq 10^{10}$,一定要注意取模时不要溢出。。。

5. 非常卡常(

posted @ 2021-12-15 23:12  CharlieVinnie  阅读(27)  评论(0编辑  收藏  举报