莫比乌斯反演学习笔记

Part 0

前置知识:

  • 整除分块

可阅读这篇日报

板子:

for(int i=1,j;i<=n;i=j+1){ j=n/(n/i); ans+=(j-i+1)*(n/i) }
  • 数论函数

μ(x)={1amp;x=10amp;存在p2|x,pPrime(1)kamp;k为质因数个数

PS: μ 表示莫比乌斯函数

初学者评价:什么 kb (

狄利克雷卷积:

f(x)g(x)=ixf(i)g(xi)

f(x)g(x) 表示数论函数 f(x)g(x) 的狄利克雷卷积,也可写作 fg

积性函数:f(x×y)=f(x)×f(y)[gcd(x,y)=1],很多常见的数论函数都是积性函数,例如 μφ

PS: φ 表示欧拉函数

积性函数与狄利克雷卷积的相关性质:如果 fg 都是积性函数,那么 fg 也是积性函数。

证明咕咕咕

单位函数:ϵ(x)=[x=1]

常数函数:1(x)=1

除数函数:σk(x)=dxdk

欧拉函数:φ(x)=i=1x[gcd(i,x)=1]

恒等函数:idk(x)=xkid1(x) 通常记作 id(x)

一些定理:

μ1=ϵ

φ1=id

Part 1

先扔个结论:

[gcd(i,j)==1]dgcd(i,j)μ(d)

证明:
μ 函数有个性质:

dnμ(d)=[n=1]

如果 gcd(i,j)=1 的话,那么代表着我们按上个结论中枚举的那个 n1,也就是式子的值是 1,反之,有一个与 [gcd(i,j)=1] 相同的值:0

因为 μ 函数是积性函数,所以可以用线性筛求出 μ 函数,时间复杂度 O(n)

inline void init(){ memset(isprime,1,sizeof(isprime)); isprime[1]=0;mu[1]=1; for(int i=2;i<=N;++i){ if(isprime[i]){ prime[++cnt]=i; mu[i]=-1; } for(int j=1;j<=cnt&&i*prime[j]<=N;++j){ isprime[i*prime[j]]=0; if(i%prime[j]) mu[i*prime[j]]-=mu[i]; else{ mu[i*prime[j]]=0; break; } } } }

Part 2

注:下文中所有除法结果皆默认向下取整

例题1-P2522 [HAOI2011]Problem b

i=abj=cd[gcd(i,j)=k]

考虑容斥,将式子分解为四个部分,每个部分都为

i=1nj=1m[gcd(i,j)=k]

大力推柿子:

i=1nkj=1mk[gcd(i,j)=1]

运用反演定理:

i=1nkj=1mkdgcd(i,j)μ(d)

注意到后面的约数可以提到前面枚举:

d=1min(n,m)kμ(d)i=1nkdj=1mkd

d=1min(n,m)kμ(d)nkdmkd

式子可以使用整除分块求解,复杂度 O(n+Tn)

注意:此题如果使用 #define int long long 将会 T 飞,别问我为什么知道,问就是我这么干了

例题2-P2257 YY的GCD

i=1nj=1m[gcd(i,j)prime]

套路变换一下:

k=1min(n,m)i=1nj=1m[gcd(i,j)=k](kprime)

k=1min(n,m)i=1nkj=1mk[gcd(i,j)=1](kprime)

上我们可爱有趣的莫比乌斯反演:

k=1min(n,m)i=1nkj=1mkdgcd(i,j)μ(d)

k=1min(n,m)d=1min(n,m)kμ(d)nkdmkd

T=kd

k=1min(n,m)d=1min(n,m)kμ(d)nTmT

T 提到前面并枚举:

T=1min(n,m)nTmTkT,kprimeμ(Tk)

后面这个部分可以预处理,处理出前缀和,单次询问整除分块,复杂度 O(n+Tn)

Part 3

一些常见的 trick:

  • 当题目的式子涉及到 gcdlcm 时,可优先考虑莫反
  • 当出现枚举约数时,可考虑将其提到前面
  • gcd(x,y)>1 时,μ(xy)=0

本文参考:


__EOF__

本文作者Akane_Moon
本文链接https://www.cnblogs.com/hzx-qwq/p/16543805.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Akane_Moon  阅读(37)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· Apache Tomcat RCE漏洞复现(CVE-2025-24813)

“一言(ヒトコト)

军人天生就舍弃了战斗的意义! ——机动战士高达00
点击右上角即可分享
微信分享提示