[笔记]杜教筛核心原理

i=1nj=1mgcd(i,j)
=d=1ndf(d)
=d=1ndd|jμ(j/d)F(d)
=i×j<=niμ(j)F(ij)
=T=1nF(T)ϕ(T)
=T=1n[nT][mT]ϕ(T)

———-杜教筛:
已知问题:

S(n)=i=1nf(i)

取一个积性函数g使得f*g方便计算前缀和并做如下变换
(gf)(i)=d|if(d)g(i/d)

i=1n(gf)(i)=i=1nd|if(d)g(i/d)

=ij<=nf(i)g(j)

=i=1ng(i)j=1n/if(j)

=i=1ng(i)S(n/i)

就可以得到
S(n)=1S(n)=g(1)S(n)

=i=1ng(i)S(n/i)i=2ng(i)S(n/i)

=i=1n(gf)(i)i=2ng(i)S(n/i)

后面就是递归计算了,注意要记忆化S

原文地址:https://www.cnblogs.com/Extended-Ash/p/9477075.html