莫比乌斯函数
μ(n)=⎧⎨⎩1n=10n 含有平方因子(−1)kk 为 n 的本质不同质因子个数
莫比乌斯反演
如果F(n)和f(n)是两个数论函数,并且满足条件:
F(n)=∑d|nf(d)
那么存在一个结论:
f(n)=∑d|nμ(d)F(⌊nd⌋)
∑d|nμ(d)F(⌊nd⌋)=∑d|nμ(d)∑i|⌊nd⌋f(i)
=∑i|nf(i)∑d|⌊ni⌋μ(d)=f(n)
首先引入
狄利克雷卷积
函数f,g为数论函数
狄利克雷卷积可以表示为f∗g
设h=f∗g
有h(n)=∑d|nf(d)g(nd)
狄利克雷卷积满足分配率,结合律,交换律
∑d|nφ(d)=∑d|nφ(d)∗I(nd)=(φ∗I)(n)=n=id(n)
也就是φ∗I=id
其中I(n)=1id(n)=n
ε是Dirichlet卷积运算中的单位元,即对于任何数论函数 f,都有f∗ε=f
ε(n)=[n==1]
φ(n)=(μ∗I∗φ)(n)=(μ∗id)(n)=∑d|n(Td)μ(d)
关于狄利克雷的更多性质可以参考oi-wiki
扯偏了
回到证明
F=n∑d|nf(n)=I∗f
F∗μ=I∗f∗μ=ϵ∗f=f
f=F∗μ=∑d|nμ(d)F(nd)
其实通过做题可以发现,以上基本是废话
最常用的性质[gcd(i,j)==1]<=>∑d∣gcd(i,j)μ(d)
基本上记住它就行了。
感谢artalter大佬的讲解
例题
A. YY的GCD
首先是莫反套路
n∑i=1m∑j=1[gcd(i,j)∈prime]
=n∑p∈primen∑i=1m∑j=1[gcd(i,j)==p]
=n∑p∈prime⌊np⌋∑i=1=⌊mp⌋∑j=1[gcd(i,j)==1]
=n∑p∈prime⌊np⌋∑i=1⌊mp⌋∑j=1∑d|gcd(i,j)μ(d)
=n∑p∈prime⌊np⌋∑d=1μ(d)⌊ndp⌋⌊mdp⌋
然后是数论分块套路
设T=dp
=n∑p∈prime⌊np⌋∑d=1μ(d)⌊nT⌋⌊mT⌋
=n∑T=1⌊nT⌋⌊mT⌋∑p∈primep|Tμ(⌊Tp⌋)
后面的预处理,前面数论分块
B. 数表
求约数和都忘了。。。oi-wiki
设f[n]=n∑d|nd
不难发现是求
n∑i=1m∑j=1f[gcd(i,j)](f[gcd(i,j)]<=A)
=n∑d=1f[d]⌊nd⌋∑i=1⌊md⌋∑j=1[gcd(i,j)==1](f[d]<=A)
=n∑d=1f[d]⌊nd⌋∑i=1⌊md⌋∑j=1∑x|gcd(i,j)μ(x)(f[d]<=A)
=n∑d=1f[d]⌊nd⌋∑i=1⌊md⌋∑j=1∑x|gcd(i,j)μ(x)(f[d]<=A)
=n∑d=1f[d]⌊ndx⌋⌊mdx⌋⌊nd⌋∑x=1μ(x)(f[d]<=A)
设T=dx
=n∑T=1⌊nT⌋⌊mT⌋∑d|Tf[d]μ(⌊nd⌋)(f[d]<=A)
前面显然数论分块,询问离线后按照a排个序,f[d]排序后,按需求a,加入树状数组动态维护
我菜的连f[d]怎么求都忘了...
赶进度,后面的咕咕咕
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】