[笔记]杜教筛核心原理

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

posted @ 2018-07-29 18:44  扩展的灰(Extended_Ash)  阅读(121)  评论(0编辑  收藏  举报