∑ni=1∑mj=1gcd(i,j)∑i=1n∑j=1mgcd(i,j)
=∑nd=1d∗f(d)=∑d=1nd∗f(d)
=∑nd=1d∗∑d|jμ(j/d)∗F(d)=∑d=1nd∗∑d|jμ(j/d)∗F(d)
=∑i×j<=ni∗μ(j)∗F(i∗j)=∑i×j<=ni∗μ(j)∗F(i∗j)
=∑nT=1F(T)∗ϕ(T)=∑T=1nF(T)∗ϕ(T)
=∑nT=1[nT][mT]ϕ(T)=∑T=1n[nT][mT]ϕ(T)
———-杜教筛:
已知问题:
取一个积性函数g使得f*g方便计算前缀和并做如下变换
就可以得到
后面就是递归计算了,注意要记忆化S
[笔记]杜教筛核心原理
最新推荐文章于 2024-08-08 14:48:14 发布
本文深入探讨了杜教筛的核心原理,通过数论中的莫比乌斯反演公式,展示了如何利用杜教筛求解前缀和问题。通过变换公式,将原问题转化为更便于计算的形式,并详细阐述了递归计算和记忆化策略,为高效解决数论相关问题提供了实用方法。
S(n)=∑i=1nf(i)S(n)=∑i=1nf(i)
(g∗f)(i)=∑d|if(d)∗g(i/d)(g∗f)(i)=∑d|if(d)∗g(i/d)
∑i=1n(g∗f)(i)=∑i=1n∑d|if(d)∗g(i/d)∑i=1n(g∗f)(i)=∑i=1n∑d|if(d)∗g(i/d)
=∑i∗j<=nf(i)∗g(j)=∑i∗j<=nf(i)∗g(j)
=∑i=1ng(i)∑j=1n/if(j)=∑i=1ng(i)∑j=1n/if(j)
=∑i=1ng(i)∗S(n/i)=∑i=1ng(i)∗S(n/i)
S(n)=1∗S(n)=g(1)∗S(n)S(n)=1∗S(n)=g(1)∗S(n)
=∑i=1ng(i)∗S(n/i)−∑i=2ng(i)∗S(n/i)=∑i=1ng(i)∗S(n/i)−∑i=2ng(i)∗S(n/i)
=∑i=1n(g∗f)(i)−∑i=2ng(i)∗S(n/i)=∑i=1n(g∗f)(i)−∑i=2ng(i)∗S(n/i)

9万+

被折叠的 条评论
为什么被折叠?



