Min_25篩 學習筆記


這兒只是一個簡單說明/概括/總結。
原理見這:
https://www.cnblogs.com/cjyyb/p/9185093.html
https://www.cnblogs.com/zhoushuyu/p/9187319.html


首先計算$$g(n,j)=\sum_if(i),\quad i是質數\ 或\ i的最小質因子嚴格大於P_j\g(n,j)=\begin{cases}g(n,j-1)&P_j^2\gt n\ g(n,j-1)-f(P_j)\left[g(\frac{n}{P_j},j-1)-\sum_{i=1}^{j-1}f(P_i)\right]&P_j^2\le n\end{cases}$$

類似埃氏篩法,\(P(n,j)\)就是篩\(j\)次后剩下的數的\(f\)和,再加上所有質數\(p\)\(f(p)\)之和。

\(P_j^2>n\)時,這一次篩不會篩掉任何數,所以就是\(g(n,j-1)\)

\(P_j^2\leq n\)時,考慮第\(j\)次篩掉了哪些數,也就是最小質因子是\(P_j\)的那些數。因為是積性函數,所以我們直接提出一個\(P_j\)(來保證它含\(P_j\))。
要被篩掉的數在除掉一個\(P_j\)后的最小質因子一定仍大於等於\(P_j\)(否則在之前就被篩掉了),這符合\(g(\frac{n}{P_j},j-1)\)的定義。所以減掉一個\(f(P_j)g(\frac{n}{P_j},j-1)\)。但是\(g(\frac{n}{P_j},j-1)\)還包含所有質數的\(f(p)\)之和,所以再加上\(\sum_{i=1}^{j-1}f(P_i)\)

那初值呢?先把所有合數的\(f\)的計算方式看做和質數一樣,以便對所有數的\(f\)值快速求個和,用它作為\(g(n,0)\)(注意這里不考慮\(1\))。這樣雖然合數的\(f\)值是假的,但是\(g(n,|P|)\)還是能正確的表示所有質數\(p\)\(f(p)\)之和。


現在考慮算上合數的\(f\)值求和。令$$S(n,j)=\sum_if(i),\quad i是質數\ 或\ i的最小質因子大於等於P_j$$

我們把\(S(n,j)\)分兩部分計算,一是所有質數的貢獻,二是所有合數的貢獻。對於\(f(1)\)最后單獨算下。

那么所有質數的貢獻可以用\(g\)表示,也就是\(g(n,j)-\sum_{i=1}^{j-1}f(P_i)\)(因為最小質因子要大於等於\(P_j\),所以把那些減掉)。

對於合數,枚舉這個合數的最小質因子及其次數,用\(f\)是積性函數的性質直接算:$$S(n,j)=g(n,j)-\sum_{i=1}^{j-1}f(P_i)+\sum_{k=j}^{P_k^2\leq n}\sum_{e=1}^{P_k^{e+1}\leq n}\left[f(P_k^e)\times S(\frac{n}{P_k^e},k+1)+f(P_k^{e+1})\right]$$

\(f(P_k^{e+1})\)\(S\)沒有考慮的那部分(就是\(P_k^{e+1}\),質數的若干次冪這樣的合數,而\(S(..,k+1)\)就把這些數忽略掉了)。

答案就是\(S(n,1)+f(1)\)


流程:

  1. 把所有合數看做質數,求一遍和,得到初值\(g(n,0)\)。同時預處理一個\(f(P_i)\)的前綴和。

  2. 用$$g(n,j)=\begin{cases}g(n,j-1)&P_j^2\gt n\ g(n,j-1)-f(P_j)\left[g(\frac{n}{P_j},j-1)-\sum_{i=1}^{j-1}f(P_i)\right]&P_j^2\le n\end{cases}$$
    計算\(g(x,|P|)\)(把第二維滾動掉)。

  3. 用$$S(n,j)=g(n,j)-\sum_{i=1}^{j-1}f(P_i)+\sum_{k=j}^{P_k^2\leq n}\sum_{e=1}^{P_k^{e+1}\leq n}\left[f(P_k^e)\times S(\frac{n}{P_k^e},k+1)+f(P_k^{e+1})\right]$$
    計算\(S(n,1)+f(1)\)

計算\(S,g\)的復雜度都是\(O(\frac{n^{\frac34}}{\log n})\)

對於其它積性函數,同\(g\)一樣計算。

實現上,篩\(sqrt(n)\)內的質數這一步往往可以省略,見這里


例題:
LOJ6235 區間素數個數
BZOJ3944 Sum
LOJ6053 簡單的函數

以后要做的題:
https://cmxrynp.github.io/2018/12/03/Min-25篩學習筆記/
https://blog.csdn.net/koishi_514/article/details/79485534
https://blog.csdn.net/HOWARLI/article/details/80339931


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM