莫比乌斯反演
反演公式&性质
f(n)=∑d|ng(d)g(n)=∑d|nμ(d)f(nd)
感觉我不太会用上面那个
我只会用莫比乌斯函数的性质
∑d|nμ(d)={1n=10n≠1或者∑d|nμ(d)=(n==1)
然后特殊的
∑d|gcd(a,b)μ(d)=(gcd(a,b)==1)
例题
然后直接上例题
化简题意求∑ni=1∑mj=1(gcd(i,j)==k),要求√n求出
⌊nk⌋∑i=1⌊mk⌋∑j=1(gcd(i,j)==1)
直接套上面的性质:
=⌊nk⌋∑i=1⌊mk⌋∑j=1∑d|gcd(a,b)μ(d)
然后设i=di′,j=dj′(d=gcd(i,j))
=nk∑d=1μ(d)nkd∑i′=1mkd∑j′=11
=nk∑d=1μ(d)⌊nkd⌋⌊mkd⌋
然后熟悉的式子,可以数论分块
所以记住一条式子方便推:
n∑i=1m∑j=1(gcd(i,j)==1)=n∑d=1μ(d)⌊nd⌋⌊md⌋
求∑ni=1∑mj=1(gcd(i,j)∈P),P指素数集,要求√n求出
∑p∈Pn∑i=1m∑j=1(gcd(i,j)==p)
=∑p∈P⌊np⌋∑i=1⌊mp⌋∑j=1(gcd(i,j)==1)
=∑p∈P⌊np⌋∑d=1μ(d)⌊npd⌋⌊mpd⌋
令T=pd
=n∑T=1⌊nT⌋⌊mT⌋∑p|T,p∈Pμ(Tp)
∑p|T,p∈Pμ(Tp)用线性筛处理,然后还是数论分块
求∑ni=1∑mj=1gcd(i,j)k,要求√n求出
n∑x=1n∑i=1m∑j=1(gcd(i,j)==x)xk
=n∑x=1⌊nx⌋∑d=1μ(d)⌊ndx⌋⌊mdx⌋xk
令T=dx
=n∑T=1⌊nT⌋⌊mT⌋∑d|Tμ(Td)xk
∑d|Tμ(Td)xk用线性筛处理,然后还是数论分块
求∑ni=1∑mj=1lcm(i,j),要求O(n)求出
n∑i=1m∑j=1ijgcd(i,j)
=n∑k=1n∑i=1m∑j=1(gcd(i,j)==k)ijk
然后设i=di′,j=dj′(d=gcd(i,j))
=n∑k=1nk∑i′=1mk∑j′=1(gcd(i,j)==1)i′j′k
化简得
=n∑k=1knk∑d=1μ(d)d2nkd∑i=1mkd∑j=1ij
设g(n,m)=sumni=1∑mj=1ij然后注意到
g(n,m)=n∑i=1m∑j=1ij=(n+1)n2⋅(m+1)m2
原式=
n∑k=1knk∑d=1μ(d)d2g(nkd,mkd)
维护f(k)=∑nkd=1μ(d)d2g(nkd,mkd)即可
n∑i=1m∑j=1g(gcd(i,j))
设x=Πpkii,g(x)=Π(ki+1)即表示x的因数个数
=n∑x=1n∑i=1m∑j=1(gcd(i,j)==x)g(x)
=n∑x=1g(x)⌊nx⌋∑i=1⌊mx⌋∑j=1(gcd(i,j)==1)
=n∑x=1g(x)nx∑d=1μ(d)⌊nxd⌋⌊mxd⌋
设T=xd
=n∑T=1⌊nT⌋⌊mT⌋∑d|Tμ(d)g(Td)
然后就是预处理∑d|Tμ(d)g(Td)
n∑i=1m∑j=1g(ij)
设x=Πpkii,g(x)=Π(ki+1)即表示x的因数个数
首先要知道一个式子:d(ij)=∑x∣i∑y∣j[gcd(x,y)=1]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通