$\quad $ 《一种可以在低于线性时间内计算出积性函数前缀和的筛法》
$\quad $ 其实说是筛法,倒不如说是技巧。先说一下大致过程吧。
$\quad $ 假设你要求 \(\sum _{i=1}^{n}f(i)\) ,\(f(x)\) 是一个积性函数,记 \(s(n)=\sum _{i=1}^{n}f(i)\) 。
$\quad $ 那么你要找出一个积性函数 \(g\) ,使得 \(g\) 与 \(f\) 的狄利克雷卷积(记为 \(h\) )的前缀和方便计算。
主要过程如下:
\[\sum _{i=1}^{n}h(i)=\sum _{i=1}^{n}\sum _{d|i}g(d)f(\frac{i}{d})
\]
\[\sum _{i=1}^{n}h(i)=\sum _{d=1}^{n}g(d)\sum _{i=1}^{\lfloor \frac{n}{d}\rfloor}f(i)
\]
\[\sum _{i=1}^{n}h(i)=\sum _{d=1}^{n}g(d)s(\lfloor\frac{n}{d}\rfloor)
\]
然后提出含 \(s(n)\) 的项。
\[g(1)s(n)=\sum _{i=1}^{n}h(i)-\sum _{d=2}^{n}g(d)s(\lfloor\frac{n}{d}\rfloor)
\]
然后递归求解+记忆化即可。
$\quad $ 写两个常用东西:
\(\varphi * I=id\)
\(I*\mu=\epsilon\)
$\quad $ 上面的乘号代表卷积运算,这两个东西其实就是我在莫反做题记开头给到的两个结论。这两个东西的应用似乎有人叫做欧拉反演和莫比乌斯反演?不是很清楚。
看看例题吧。
杜教筛模板
$\quad $ 即:
\[ans1=\sum _{i=1}^{n}\varphi(i)
\]
\[ans2=\sum _{i=1}^{n}\mu(i)
\]
$\quad $ 先去处理 \(ans1\) ,按照上面的方法,我们令 \(g\) 函数为 \(I\) ,则:
\[h(n)=\sum _{d|n}\varphi(d)=n
\]
于是有:
\[s(n)=\sum _{i=1}^{n}i - \sum _{i=2}^{n}s(\lfloor\frac{n}{d}\rfloor)=\frac{n\times(n+1)}{2}-\sum _{d=2}^{n}s(\lfloor\frac{n}{d}\rfloor)
\]
$\quad $ 然后处理 \(ans2\) ,我们仍令 \(g=I\) ,则:
\[h(n)=\mu*I=\epsilon
\]
$\quad $ 这个的前缀和显然就是 \(1\) 了。于是我们得到:
\[s(n)=1-\sum _{i=2}^{n}s(\lfloor\frac{n}{d}\rfloor)
\]
$\quad $ 然后分别计算 \(ans1\) 和 \(ans2\) 即可。
神犇和蒟蒻
$\quad $ 小清新题,求:
\[ans1=\sum _{i=1}^{n}\mu(i^2)
\]
\[ans2=\sum _{i=1}^{n}\varphi(i^2)
\]
$\quad $ \(ans1\) 一眼就是 \(1\) ,没什么好说的,我们来看 \(ans2\) :
\[ans2=\sum _{i=1}^{n}\varphi(i^2)=\sum _{i=1}^{n}i\varphi(i)
\]
$\quad $ 然后令 \(g=id\)
那么:
\[h(n)=\sum _{d|n}d\varphi(d)\frac{n}{d}=n^2
\]
$\quad $ 然后我们还需要知道:\(\sum _{i=1}^{n}i^2=\frac{n\times(n+1)\times(2n+1)}{6}\)
$\quad $ 然后就可以得出:
\[s(n)=\frac{n\times(n+1)\times(2n+1)}{6}-\sum _{i=2}^{n}is(\lfloor\frac{n}{i}\rfloor)
\]
\[To Be Continued
\]