小清新杜教筛水题~(
考虑 f(n) 的递推式,可得 f(n)=[n=1]+∑d|n,d<nf(d)
考虑容斥掉第二项的贡献,即 f(n)−∑d|n,d<nf(d)=∑d|n(−1)[d<n]f(d)=[n=1]
注意到其中的 [d<n] 可以被写作 [nd≠1]。
也即可以表示为狄利克雷卷积的形式: ∑d|nf(d)g(nd)=[n=1]
其中 g(n)=(−1)[n≠1]。
因此考虑杜教筛求出 f 即可。
代码:
1 |
|
小清新杜教筛水题~(
考虑 f(n) 的递推式,可得 f(n)=[n=1]+∑d|n,d<nf(d)
考虑容斥掉第二项的贡献,即 f(n)−∑d|n,d<nf(d)=∑d|n(−1)[d<n]f(d)=[n=1]
注意到其中的 [d<n] 可以被写作 [nd≠1]。
也即可以表示为狄利克雷卷积的形式: ∑d|nf(d)g(nd)=[n=1]
其中 g(n)=(−1)[n≠1]。
因此考虑杜教筛求出 f 即可。
代码:
1 | #include <cstdio> |
Related Issues not found
Please contact @Alpha1022 to initialize the comment