莫比乌斯反演 & gcd 卷积

没有写一些概念(?(((

我是梅比乌斯厨=莫比乌斯厨=牲畜(暴论。


前置芝士

积性分解

对于积性函数 f,给出 n=i=1mpici。有 f(n)=i=1mf(pici)。意思是跟 质因子 & 幂次 相关度较高 。


狄利克雷卷积

两个数论函数(这里理解成值域为正整数)卷乘一个新的数论函数,记作 fg。满足

(fg)(n)=xy=nf(x)g(y)=d|nf(d)g(n/d)

  • 这玩意满足 交换 & 结合律。数论函数 ϵ(n)=[n=1]。任意数论函数 fϵ=f

  • 计算上面除了按照定义也可以枚举因数的倍数。

  • 两个积性函数的卷积仍是积性函数。


卷积逆元

给出 f 满足 f(1)=1f 的逆元 g=f1 满足 fg=ϵ

首先 g(1)=1,对于 n>1g(n)

(fg)(n)=ϵ(n)

d|nf(d)g(n/d)=0

g(n)=d|n,d1f(d)g(n/d)

  • 积性函数的逆仍是积性函数。

莫比乌斯反演

莫比乌斯函数

有函数 I(n)=1,莫比乌斯函数 μ=ϵ1

写出在幂处的取值,是研究积性函数的通用方法。

  • μ(1)=1

  • μ(p)I(1)+μ(1)I(p)=0 意思是 μ(p)=1

  • k>1,i=0kμ(pi)=0,归纳就是 μ(pk)=0

n 没有平方因子时, μ(n)=1x,其中 xn 的素因子数目。otherwise, μ(n)=0

μ 这个跟 *** 一样可爱的东西用卷积逆就可以 O(nlogn) 卷出来了。也可以线性筛递推捏。具体的递推 μ(n)p|(n/p) 的话 μ(n)=0 否则就是 μ(n)=μ(n/p)

int p[M], top, mu[M], vis[M];
vis[1]=1, mu[1]=1;
for(int i=2; i<=N; ++i) {
	if(!vis[i]) p[++top]=i, mu[i]=-1;
	for(int j=1; j<=top&&i*p[j]<=N; ++j) {
		int x=i*p[j]; vis[x]=1;
		if(i%p[j]!=0) mu[x]=-mu[i];
	}
}

约数求和 & 倍数求和

有一定的值域 qwq bwb pwp dwd

f 弄一个可爱的 Lsum(f) & 一个丑陋的 Rsum(f)

(Lsum(f))(n)=d|nf(d)

(Rsum(f))(n)=n|df(d)

按照幂次把数看为高维点这个分别是 前缀|后缀和 >w<

我们再给祂们弄逆操作Ldif(Lsum(f))=f,Rdif(Rsum(f))=f

差分的计算

给出 g=Lsum(f),求 f。条件等价于 g=fl,则 f=gμ

给出 g=Rsum(f),求 f

n|dμ(d/n)g(d)

=n|dμ(d/n)d|tf(t)

=k=1μ(k)nk|tf(t)

=t=1f(t)nk|tμ(k)

=t=1f(t)[n|t]ϵ(t/n)

=f(n)

或者容斥也可以捏 >_<

求得 μ 的话,计算都是 O(nlogn) 捏。


gcd 卷积

给出函数 f,g,记两者的 gcd卷卷卷函数为 h。满足 h(n)=gcd(x,y)=nf(x)g(y)

求出 Rsum(h) 然后倍数差分捏。

(Rsum(h))(n)

=n|gcd(x,y)f(x)g(y)

=n|x,n|yf(x)g(y)

=(Rsum(f))(n)(Rsum(g))(n)

可以联想 and 卷积,有类似的结论 qwq

如果有些 f 很厉害的话,可以顺便记录一下最小质因子的次数来递推。

n 里面质数的幂有多少个呢(?(((

O(pPc=1[pcn])

=O(c=1pP[pn1/c])

=O(c=1n1/c/logn1/c)

=O(n/logn)

然后如果求单个 f(pk) 的复杂度不超过 O(logn) 的话,总复杂度线性。

说句闲话这解决了 lsy 一个珂爱的没有深究的历史遗留的不知道为什么能过问题(?

posted @   Hypoxia571  阅读(122)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示