数论

狄利克雷卷积

一种函数间的运算。假设有函数 \(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)\))。

  • 有一些式子可以不急着提公因数,后面也许有用。

posted @ 2024-01-18 22:51  mRXxy0o0  阅读(15)  评论(0)    收藏  举报