莫比乌斯反演

莫比乌斯函数

μ(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|ndf(i)

=i|nf(i)d|niμ(d)=f(n)

  • 证明二

首先引入

狄利克雷卷积

  • 定义

函数f,g为数论函数

狄利克雷卷积可以表示为fg

h=fg

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=d|nnf(n)=If

Fμ=Ifμ=ϵf=f

f=Fμ=d|nμ(d)F(nd)

其实通过做题可以发现,以上基本是废话

最常用的性质[gcd(i,j)==1]<=>dgcd(i,j)μ(d)

基本上记住它就行了。

感谢artalter大佬的讲解

例题

A. YY的GCD

首先是莫反套路

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

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

=pprimeni=1np=j=1mp[gcd(i,j)==1]

=pprimeni=1npj=1mpd|gcd(i,j)μ(d)

=pprimend=1npμ(d)ndpmdp

然后是数论分块套路

T=dp

=pprimend=1npμ(d)nTmT

=T=1nnTmTpprimep|Tμ(Tp)

后面的预处理,前面数论分块

B. 数表

求约数和都忘了。。。oi-wiki

f[n]=d|nnd

不难发现是求

i=1nj=1mf[gcd(i,j)](f[gcd(i,j)]<=A)

=d=1nf[d]i=1ndj=1md[gcd(i,j)==1](f[d]<=A)

=d=1nf[d]i=1ndj=1mdx|gcd(i,j)μ(x)(f[d]<=A)

=d=1nf[d]i=1ndj=1mdx|gcd(i,j)μ(x)(f[d]<=A)

=d=1nf[d]ndxmdxx=1ndμ(x)(f[d]<=A)

T=dx

=T=1nnTmTd|Tf[d]μ(nd)(f[d]<=A)

前面显然数论分块,询问离线后按照a排个序,f[d]排序后,按需求a,加入树状数组动态维护

我菜的连f[d]怎么求都忘了...

赶进度,后面的咕咕咕

posted @   Chen_jr  阅读(63)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示