杜教筛
求积性函数f(x)f(x)的前缀和S(n)=∑ni=1f(i)S(n)=∑i=1nf(i)
狄利克雷卷积:
(g∗f)(x)=∑d|xg(d)f(xd)(g∗f)(x)=∑d|xg(d)f(xd)
∑x=1n(g∗f)(x)=∑x=1n∑d|xg(d)f(xd)∑x=1n(g∗f)(x)=∑x=1n∑d|xg(d)f(xd)
=∑d=1n∑d|xng(d)f(xd)=∑d=1n∑d|xng(d)f(xd)
=∑d=1ng(d)∑x=1n/df(x)=∑d=1ng(d)∑x=1n/df(x)
=∑d=1ng(d)S(⌊nd⌋)=∑d=1ng(d)S(⌊nd⌋)
即
∑x=1n(g∗f)(x)=∑d=1ng(d)S(⌊nd⌋)∑x=1n(g∗f)(x)=∑d=1ng(d)S(⌊nd⌋)
我们有
g(1)S(n)=∑i=1ng(i)S(⌊ni⌋)−∑i=2ng(i)S(⌊ni⌋)g(1)S(n)=∑i=1ng(i)S(⌊ni⌋)−∑i=2ng(i)S(⌊ni⌋)
g(1)S(n)=∑i=1n(g∗f)(i)−∑i=2ng(i)S(⌊ni⌋)g(1)S(n)=∑i=1n(g∗f)(i)−∑i=2ng(i)S(⌊ni⌋)
假设我们要求S(n)=∑ni=1μ(i)S(n)=∑i=1nμ(i)
我们只需要找出g(x)g(x)使得(g∗f)(x)(g∗f)(x)的前缀和好算就可以了
我们知道
∑d|nμ(d)=[n=1]∑d|nμ(d)=[n=1]
那么我们可以设g(x)=1g(x)=1
这样的话
(g∗f)(x)=∑d|xf(d)g(dx)=[x=1](g∗f)(x)=∑d|xf(d)g(dx)=[x=1]
∑i=1x(g∗f)(x)=1∑i=1x(g∗f)(x)=1
g(1)S(n)=1−∑i=2nS(⌊ni⌋)g(1)S(n)=1−∑i=2nS(⌊ni⌋)
后面的部分可以数论分块
首先先线性筛出前面一部分(10000001000000)μ(x)μ(x)的前缀和,后面记忆化搜索即可
再假设我们要求S(n)=∑ni=1ϕ(i)S(n)=∑i=1nϕ(i)
我们知道
∑d|nϕ(d)=n∑d|nϕ(d)=n
(g∗f)(x)=∑d|xf(d)g(xd)(g∗f)(x)=∑d|xf(d)g(xd)
我们发现如果令g(x)=1g(x)=1
(g∗f)(x)=∑d|xf(d)=x(g∗f)(x)=∑d|xf(d)=x
g(1)S(n)=∑i=1ni−∑i=2ng(i)S(⌊ni⌋)g(1)S(n)=∑i=1ni−∑i=2ng(i)S(⌊ni⌋)
S(n)=x(x+1)2−∑i=2nS(⌊ni⌋)S(n)=x(x+1)2−∑i=2nS(⌊ni⌋)
51nod1238 最小公倍数之和V3
求
∑i=1n∑j=1nlcm(i,j)∑i=1n∑j=1nlcm(i,j)
ans=∑i=1n∑j=1nijgcd(i,j)ans=∑i=1n∑j=1nijgcd(i,j)
=∑d=1n1d∑i=1n∑j=1nij [gcd(i,j)=d]=∑d=1n1d∑i=1n∑j=1nij [gcd(i,j)=d]
=∑d=1n1d∑i=1n/d∑j=1n/did jd [gcd(i,j)=1]=∑d=1n1d∑i=1n/d∑j=1n/did jd [gcd(i,j)=1]
=∑d=1nd∑i=1n/d∑j=1n/dij [gcd(i,j)=1]=∑d=1nd∑i=1n/d∑j=1n/dij [gcd(i,j)=1]
设
f(x)=∑i=1x∑j=1xij[gcd(i,j)=1]f(x)=∑i=1x∑j=1xij[gcd(i,j)=1]
=2(∑i=1xi∑j=1ij[gcd(i,j)=1])−1=2(∑i=1xi∑j=1ij[gcd(i,j)=1])−1
=2(∑i=1xi iϕ(i)+[i=1]2)−1=2(∑i=1xi iϕ(i)+[i=1]2)−1
=(∑i=1xi2 ϕ(i)+[i=1])−1=(∑i=1xi2 ϕ(i)+[i=1])−1
=∑i=1xi2 ϕ(i)=∑i=1xi2 ϕ(i)
代回原式子
ans=∑d=1nd∑i=1n/di2 ϕ(i)ans=∑d=1nd∑i=1n/di2 ϕ(i)
设
S(n)=∑i=1ni2 ϕ(i)S(n)=∑i=1ni2 ϕ(i)
S(n)=∑i=1n(g∗f)(i)−∑i=2ng(i)S(ni)S(n)=∑i=1n(g∗f)(i)−∑i=2ng(i)S(ni)
推一下卷积
∑i=1n(g∗f)(x)=∑i=1n∑d|if(d)g(id)∑i=1n(g∗f)(x)=∑i=1n∑d|if(d)g(id)
=∑i=1n∑d|id2ϕ(d)g(id)=∑i=1n∑d|id2ϕ(d)g(id)
我们发现设g(x)=x2g(x)=x2就可以把d2d2约掉
=∑i=1n∑d|id2ϕ(d)i2d2=∑i=1n∑d|id2ϕ(d)i2d2
=∑i=1ni2∑d|iϕ(d)=∑i=1ni2∑d|iϕ(d)
=∑i=1ni3=∑i=1ni3
=(n(n+1)2)2=(n(n+1)2)2
g(1)S(n)=∑i=1n(g∗f)(x)−∑i=2ng(i)S(ni)g(1)S(n)=∑i=1n(g∗f)(x)−∑i=2ng(i)S(ni)
S(n)=(n(n+1)2)2−∑i=2ni2S(ni)S(n)=(n(n+1)2)2−∑i=2ni2S(ni)
我们知道
∑i=1ni2=n(n+1)(2n+1)6∑i=1ni2=n(n+1)(2n+1)6
我们可以杜教筛S(n)S(n)
ans=∑d=1nd S(nd)ans=∑d=1nd S(nd)