杜教筛

考虑对数论函数 \(f\)\(\sum_{i=1}^n f(i)\)。我们需要构造 \(h=f*g\)\(*\) 指狄利克雷卷积,即 \(h(i)=\sum_{c|i}f(i)g(\frac{i}{c})\)。杜教筛对 \(h(i)\) 求和:

\[\sum_{i=1}^n h(i)=\sum_{i=1}^n\sum_{c|i}f(i)g(\frac{i}{c}) \]

\[=\sum_{c=1}^n g(c)\sum_{i=1}^{\lfloor\frac{n}{c}\rfloor}f(i) \]

\[=\sum_{c=1}^ng(c)S(\lfloor\frac{n}{c}\rfloor) \]

\[\Rightarrow g(1)S(n)=\sum_{i=1}^n h(i)-\sum_{i=2}^ng(i)S(\lfloor\frac{n}{i}\rfloor) \]

那么对于欧拉函数,因 \(\sum_{c|n}\varphi(c)=n\),故有 \(id=I*\varphi\),则带入上述公式:

\[S_{\varphi}(n)=\sum_{i=1}^n i-\sum_{i=2}^n S(\lfloor\frac{n}{i}\rfloor)=\frac{n(n+1)}{2}-\sum_{i=2}^n S(\lfloor\frac{n}{i}\rfloor) \]

对于莫比乌斯函数,因 \(\sum_{c|n}\mu(c)=\varepsilon(n)\),故有 \(\varepsilon=\mu*I\),则:

\[S_{\mu}(n)=\sum_{i=1}^{n}\varepsilon(i)-\sum_{i=2}^n\varepsilon(i)S(\lfloor\frac{n}{i}\rfloor)=1-\sum_{i=2}^nS(\lfloor\frac{n}{i}\rfloor) \]

对于时间复杂度,我们一般假设 \(\sum h(i)\) 可以 \(O(1)\) 处理,则需要记忆化所有的值,且预处理 \([1,m]\)\(S\) 后,时间复杂度为 \(O(m+\frac{n}{\sqrt{m}})\)。取 \(m=n^{\frac{2}{3}}\) 时复杂度平衡为 \(O(n^\frac{2}{3})\)

posted @ 2025-12-20 22:06  tanghg  阅读(3)  评论(0)    收藏  举报