狄利克雷卷积
一种函数间的运算。假设有函数 \(f\) 和 \(g\),\(f*g=h,h(n)=\sum\limits_{d|n}f(d)\times g(\frac{n}{d})\)。
如果其中一个是常函数 \(1\),则称其为狄利克雷前缀和(后缀和就是枚举倍数)。可以用高维前/后缀和 \(O(n\log\log n)\) 处理。
板子(前、后缀):
for(int i=1;i<=p[0]&&p[i]<=m;++i){
for(int j=1;j*p[i]<=m;++j){
s[j*p[i]]+=s[j];
}
}
for(int i=1;i<=p[0]&&p[i]<=m;++i){
for(int j=m/p[i];j;--j){
s[j]+=s[j*p[i]];
}
}
逆
类似乘法的逆。有单位元函数 \(\mathbb\varepsilon(n)=[n=1]\) ,则两个卷起来为 \(f*g=\mathbb\varepsilon\) 的函数互逆。
求法
根据定义从小到大递推即可,注意第一项不能为 \(0\)。
反演
- \(F=f*1\),已知 \(F\),求 \(f\)。卷 \(1\) 的逆 \(\mu\) 即可。
作用
\(f\) 难求(如限制 \(\gcd=k\)),而 \(F\) 好求(前或后缀和),可以考虑反演。
推式子
-
改变枚举的东西,如枚举约数改为倍数。
-
多次重复出现的式子设辅助元代替(为了套整除分块)。
-
无关项提到可能的最外面,也可以设法构造无关项。
-
改变求和顺序。
-
对于奇怪的东西,不妨打表找一下规律。(\(\sum\limits_{d|n}\mu(d)\times\mu(\frac n d)^2=\mu(\sqrt n)\))。
-
有一些式子可以不急着提公因数,后面也许有用。