「总结」筛法2

主要是杜教筛。

1.DZY Loves Math IV http://hzoj.com/contest/228/problem/3
直接推,就没什么好说的。

[egin{aligned} ans&=sumlimits_{i=1}^{n}sumlimits_{j=1}^{m}varphi(ij)\ &=sumlimits_{i=1}^{n}S(i,m)\ S(n,m)&=sumlimits_{i=1}^{m}varphi(ni)\ \ \ n&=\_*p^c\ g&=prod p\ gr&=n\ \ \ S(n,m)&=rsumlimits_{i=1}^{m}varphi(gi)\ &=rsumlimits_{i=1}^{m}gcd(i,g)varphi(frac{ig}{gcd(i,g)})\ frac{g}{gcd(i,g)}&perp gcd(i,g),frac{g}{gcd(i,g)}perp i\ &=rsumlimits_{i=1}^{m}varphi(i)varphi(frac{g}{gcd(i,g)})gcd(i,g)\ \ \ varphi(n)&=sumlimits_{i=1}^{n}[gcd(i,n)=1]\ &=sumlimits_{i=1}^{n}sumlimits_{d|gcd(i,n)}mu(d)\ &=sumlimits_{d|n}mu(d)frac{n}{d}\ varphi&=mu*id\ id&=varphi*I\ n&=sumlimits_{d|n}varphi(d)\ \ \ &=rsumlimits_{i=1}^{m}varphi(i)varphi(frac{g}{gcd(i,g)})sumlimits_{d|gcd(i,g)}varphi(d)\ &=rsumlimits_{i=1}^{m}varphi(i)sumlimits_{d|gcd(i,g)}varphi(frac{g}{d})\ &=rsumlimits_{d|g}varphi(frac{g}{d})sumlimits_{i=1}^{frac{m}{d}}varphi(id)\ &=rsumlimits_{d|g}varphi(frac{g}{d})S(d,frac{m}{d})\ end{aligned}]

这样就得到递归形式了。
其实并没有莫比乌斯反演。
中间这一步是欧拉反演。
杜教筛的精髓就是递归形式,而并不在于其是否是积性函数。

2.Neko and function http://hzoj.com/contest/236/problem/4
发现难点在于(1)的处理,考虑容斥。

[ans=sumlimits_{i=1}^{n}f(i,K) ]

(F(n,K,m))为恰好有(m)(1)的方案。
(G(n,K,m))为至少有(m)(1)的方案。
(g(n,K))为无限制有多少个(1)的方案。

[G(n,K,m)=sumlimits_{i=m}^{K}inom{i}{m}F(n,K,i) ]

[F(n,K,m)=sumlimits_{i=m}^{K}(-1)^{i-m}inom{i}{m}G(n,K,i) ]

[G(n,K,m)=inom{K}{m}g(n,K-m) ]

[egin{aligned} f(n,K)&=F(n,K,0)\ &=sumlimits_{i=0}^{K}(-1)^{i}inom{K}{i}g(n,K-i)\ &=sumlimits_{i=0}^{K}(-1)^{K-i}inom{K}{i}g(n,i)\ end{aligned}]

现在求一下(g(n,K))
怎么做呢?尝试做一个(dp)

[g(n,K)=sumlimits_{d|n}g(d,K-1) ]

用卷积来写的话就是:

[g(K)=I*g(K-1) ]

[g(K-1)=g(K)*mu ]

由于每个质数之间互不干扰,所以(g)是一个积性函数。
这样就出现了杜教筛的形式。

[egin{aligned} S_{K-1}(n)&=sumlimits_{i=1}^{n}g(n,K-1)\ &=sumlimits_{i=1}^{n}sumlimits_{d|i}g(frac{i}{d},K)mu(d)\ &=sumlimits_{d=1}^{n}mu(d)sumlimits_{i=1}^{frac{n}{d}}g(i,K)\ &=sumlimits_{d=1}^{n}mu(d)S_K(frac{n}{d})\ S_K(n)&=S_{K-1}(n)-sumlimits_{d=2}^{n}mu(d)S_K(frac{n}{d})\ end{aligned}]

这样就可以直接杜教筛了。

[egin{aligned} ans&=sumlimits_{i=1}^{n}f(i,K)\ &=sumlimits_{i=1}^{n}sumlimits_{j=0}^{K}(-1)^{K-j}inom{K}{j}g(i,j)\ &=sumlimits_{j=0}^{K}(-1)^{K-j}inom{K}{j}sumlimits_{i=1}^{n}g(i,j)\ &=sumlimits_{j=0}^{K}(-1)^{K-j}inom{K}{j}S_{j}(n)\ end{aligned}]

这个是狄立克雷卷积的直接运用。

原文地址:https://www.cnblogs.com/Lrefrain/p/12114875.html