「总结」筛法2
主要是杜教筛。
1.DZY Loves Math IV http://hzoj.com/contest/228/problem/3
直接推,就没什么好说的。
\[\begin{aligned}
ans&=\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\varphi(ij)\\
&=\sum\limits_{i=1}^{n}S(i,m)\\
S(n,m)&=\sum\limits_{i=1}^{m}\varphi(ni)\\
\\
\\
n&=\_*p^c\\
g&=\prod p\\
gr&=n\\
\\
\\
S(n,m)&=r\sum\limits_{i=1}^{m}\varphi(gi)\\
&=r\sum\limits_{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\\
&=r\sum\limits_{i=1}^{m}\varphi(i)\varphi(\frac{g}{gcd(i,g)})gcd(i,g)\\
\\
\\
\varphi(n)&=\sum\limits_{i=1}^{n}[gcd(i,n)=1]\\
&=\sum\limits_{i=1}^{n}\sum\limits_{d|gcd(i,n)}\mu(d)\\
&=\sum\limits_{d|n}\mu(d)\frac{n}{d}\\
\varphi&=\mu*id\\
id&=\varphi*I\\
n&=\sum\limits_{d|n}\varphi(d)\\
\\
\\
&=r\sum\limits_{i=1}^{m}\varphi(i)\varphi(\frac{g}{gcd(i,g)})\sum\limits_{d|gcd(i,g)}\varphi(d)\\
&=r\sum\limits_{i=1}^{m}\varphi(i)\sum\limits_{d|gcd(i,g)}\varphi(\frac{g}{d})\\
&=r\sum\limits_{d|g}\varphi(\frac{g}{d})\sum\limits_{i=1}^{\frac{m}{d}}\varphi(id)\\
&=r\sum\limits_{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=\sum\limits_{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)=\sum\limits_{i=m}^{K}\binom{i}{m}F(n,K,i)
\]
\[F(n,K,m)=\sum\limits_{i=m}^{K}(-1)^{i-m}\binom{i}{m}G(n,K,i)
\]
\[G(n,K,m)=\binom{K}{m}g(n,K-m)
\]
\[\begin{aligned}
f(n,K)&=F(n,K,0)\\
&=\sum\limits_{i=0}^{K}(-1)^{i}\binom{K}{i}g(n,K-i)\\
&=\sum\limits_{i=0}^{K}(-1)^{K-i}\binom{K}{i}g(n,i)\\
\end{aligned}\]
现在求一下\(g(n,K)\)
怎么做呢?尝试做一个\(dp\)。
\[g(n,K)=\sum\limits_{d|n}g(d,K-1)
\]
用卷积来写的话就是:
\[g(K)=I*g(K-1)
\]
\[g(K-1)=g(K)*\mu
\]
由于每个质数之间互不干扰,所以\(g\)是一个积性函数。
这样就出现了杜教筛的形式。
\[\begin{aligned}
S_{K-1}(n)&=\sum\limits_{i=1}^{n}g(n,K-1)\\
&=\sum\limits_{i=1}^{n}\sum\limits_{d|i}g(\frac{i}{d},K)\mu(d)\\
&=\sum\limits_{d=1}^{n}\mu(d)\sum\limits_{i=1}^{\frac{n}{d}}g(i,K)\\
&=\sum\limits_{d=1}^{n}\mu(d)S_K(\frac{n}{d})\\
S_K(n)&=S_{K-1}(n)-\sum\limits_{d=2}^{n}\mu(d)S_K(\frac{n}{d})\\
\end{aligned}\]
这样就可以直接杜教筛了。
\[\begin{aligned}
ans&=\sum\limits_{i=1}^{n}f(i,K)\\
&=\sum\limits_{i=1}^{n}\sum\limits_{j=0}^{K}(-1)^{K-j}\binom{K}{j}g(i,j)\\
&=\sum\limits_{j=0}^{K}(-1)^{K-j}\binom{K}{j}\sum\limits_{i=1}^{n}g(i,j)\\
&=\sum\limits_{j=0}^{K}(-1)^{K-j}\binom{K}{j}S_{j}(n)\\
\end{aligned}\]
这个是狄立克雷卷积的直接运用。