杜教篩學習筆記

无敌の暗黑魔王發表於2024-09-13

$\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 \]