莫比乌斯×狄利克雷
很早以前的总结了……
今天比较特别,发表纪念一下。
前情提要
需要掌握
- μ 的定义及求法。
- 大型运算符交换顺序。
引入
定义
- ∀n∈N∗ ,一定有 n=i=1∏qpiai,
对此定义 μ(n)={0(−1)qn含平方因子otherwise。
- 定义元函数 ϵ(n)=[n=1]={10n=1n=1。
- Idk(x)=xk。
公式
- ⌊k⌊ji⌋⌋=⌊jki⌋。
积性函数
若
gcd(x,y)=1 时,有
f(xy)=f(x)f(y),则称
f 是一个积性函数,
若
f,g 为积性函数,则
h(i)=f(i)g(i) 也为积性函数(不同于狄利克雷卷积)。
积性函数的线性递推
若函数
f 为积性函数,那么一定可以按下面的方法转移。
设
P(n) 为
n 中最小质因子,
A(n) 为
n 中最小质因子的次数,定义
PA(n)=P(n)A(n):
f(n)=⎩⎨⎧1g(n)f(PA(n))f(PA(n)n)n=1n=1∧n=PA(n)n=1∧n=PA(n)
这时,我们只需要处理
g(n) 即可,
其余可以用线性筛(欧拉筛)来
O(n) 解决!
简介
莫比乌斯
莫比乌斯函数
μ(x)
简洁的容斥系数,适用于:倍数容斥。
莫比乌斯反演
T(f)(n)=d∣n∑f(d),R(f)(n)=d∣n∑μ(dn)f(d)
用于化简式子(不常直接用)。
莫比乌斯的性质
ϵ(x)=d∣x∑μ(d)
用于化简式子(常用)。
证明:
设
n=i=1∏qpiai ,而
μ(d)=0 的
d 当且仅当他的质因子指数
≤1,
所以
n 的每个质因子都有两种取法,而
μ(d) 就是
(−1)指数取1的个数,
根据二项式定理,当
n>1 时,奇数项的系数等于偶数项的系数,因此得证。
狄利克雷
狄利克雷卷积
h=f∗g⇔h(x)=d∣x∑f(d)g(dx)
若
f,g 为积性函数,则
h 为积性函数。
狄利克雷卷积的性质
做以下定义:
Idk(x)=xk
有性质:
- 交换律:f∗g=g∗f。
- 结合律:(f∗g)∗h=f∗(g∗h)。
- 分配率:f∗(g+h)=f∗g+f∗h。
- 单位元:ϵ∗f=f。
- 逆元:若 f∗g=ϵ ,那么称 f 和 g 互为逆元,即 f=g−1,g=f−1。
- 若 f 和 g 为积性函数,则 f∗g 也为积性函数,f−1 也是积性函数。
- 若 f∗g=h,则 Idkf∗Idkg=Idkh。
证明如下:
====Idkf∗Idkg(n)d∣n∑f(d)g(dn)Idk(d)Idk(dn)d∣n∑f(d)g(dn)Idk(ddn)Idk(n)d∣n∑f(d)g(dn)Idk(n)h(n)
- 特别地,当 h(n)=d∣n∑f(d)g(d) ,若 f 和 g 为积性函数,h 也为积性函数,证明如下:
设 c(d)=f(d)g(d) ,因为 f 和 g 为积性函数,所以直积后仍为积性函数,
而 h(n)=d∣n∑c(d)=c∗Id0,所以 h 也为积性函数。
莫比乌斯×狄利克雷
T(f)=f∗Id0,R(f)=f∗μ
满足:
T(R(f))=R(T(f))=f
常见形式与例子
看不懂的,配套下文的技巧观看。
模板 1:函数套 gcd
关于形如
∑i=1n∑j=1mf(gcd(i,j)) 的模板解法:
======i=1∑nj=1∑mf(gcd(i,j))d=1∑min{n,m}f(d)i=1∑⌊dn⌋j=1∑⌊dm⌋[gcd(i,j)=1]d=1∑min{n,m}f(d)i=1∑⌊dn⌋j=1∑⌊dm⌋k∣i∧k∣j∑μ(k)d=1∑min{n,m}f(d)k=1∑min{⌊dn⌋,⌊dm⌋}μ(k)i=1∑⌊kdn⌋j=1∑⌊kdm⌋1d=1∑min{n,m}f(d)k=1∑min{⌊dn⌋,⌊dm⌋}μ(k)⌊kdn⌋⌊kdm⌋t=1∑min{n,m}k∣t∑f(kt)μ(k)⌊tn⌋⌊tm⌋t=1∑min{n,m}⌊tn⌋⌊tm⌋k∣t∑f(kt)μ(k)原式枚举gcd的结果d莫比乌斯函数的性质交换大型运算符位置易得换元令t=kd
还没有结束,最后一步是尝试证明
g(t)=k∣t∑f(kt)μ(k) 是一个积性函数。
(这是狄利克雷卷积,可以只证明
f 的积性,得到
g 的积性)
无论是否证得
g 是否具有积性,
只要可以快速预处理
g 即可。
然后求
g 的前缀和
s(t)=i=1∑tg(i),
求答案使用整数分块。
例题:
对于
n,m≤107,
T≤104。求有多少对正整数
(x,y) 满足
x≤n∧y≤m,使得
gcd(x,y) 是一个质数。
模板 2:函数乘函数乘函数套 gcd
关于形如
∑i=1n∑j=1mg(i)h(j)f(gcd(i,j)) 的模板解法:
=====i=1∑nj=1∑mg(i)h(j)f(gcd(i,j))d=1∑min{n,m}f(d)i=1∑⌊dn⌋g(i)j=1∑⌊dm⌋h(j)[gcd(i,j)=1]d=1∑min{n,m}f(d)i=1∑⌊dn⌋g(i)j=1∑⌊dm⌋h(j)k∣i∧k∣j∑μ(k)d=1∑min{n,m}f(d)k=1∑min{⌊dn⌋,⌊dm⌋}μ(k)i=1∑⌊kdn⌋h(i)j=1∑⌊kdm⌋g(j)t=1∑min{n,m}k∣t∑f(kt)μ(k)i=1∑⌊tn⌋h(i)j=1∑⌊tm⌋g(j)t=1∑min{n,m}i=1∑⌊tn⌋h(i)j=1∑⌊tm⌋g(j)k∣t∑f(kt)μ(k)原式枚举gcd的结果d莫比乌斯函数的性质交换大型运算符位置换元令t=kd
后三个求和只有公共项
t,可以按
t 分别预处理。
例题:
对于
T≤104,
n,m≤107,求:
i=1∑nj=1∑mlcm(i,j)
模板 3:多要求
终极模板:见招拆招
关于形如
∀i∈[1..n],1≤bi≤ai∑f(k∈[1..n]gcdbk)j=1∏ngj(bj) 的模板解法,
这并不好直接表示出来,但是推法几乎一样。
所以,只给出结论:
t=1∑l=1minnalk∣t∑f(kt)μ(k)p=1∏ni=1∑⌊tap⌋gp(i)
模板 4:gcd 乘积
关于形如
i=1∏nj=1∏mf(gcd(i,j)) 的暴力解(不使用
ln 与
exp)模板:
=====i=1∏nj=1∏mf(gcd(i,j))d=1∏min{n,m}f(d)i=1∑⌊dn⌋j=1∑⌊dm⌋[gcd(i,j)=1]d=1∏min{n,m}f(d)i=1∑⌊dn⌋j=1∑⌊dm⌋k∣i∧k∣j∑μ(k)d=1∏min{n,m}f(d)k=1∑min{⌊dn⌋⌊dm⌋}μ(k)⌊kdn⌋⌊kdm⌋t=1∏min{n,m}d∣t∏f(d)μ(dt)⌊tn⌋⌊tm⌋t=1∏min{n,m}d∣t∏f(d)μ(dt)⌊tn⌋⌊tm⌋
求解技巧
技巧 1:枚举答案
=i=1∑nj=1∑mf(gcd(i,j))d=1∑min{n,m}f(d)i=1∑nj=1∑m[gcd(i,j)=d]
枚举
gcd 的结果
d,然后调整要求。
技巧 2:构造元函数
==d=1∑min{n,m}f(d)i=1∑nj=1∑m[gcd(i,j)=d]d=1∑min{n,m}f(d)i′=1∑⌊dn⌋j′=1∑⌊dm⌋[gcd(i′,j′)=1]d=1∑min{n,m}f(d)i=1∑⌊dn⌋j=1∑⌊dm⌋k∣i∧k∣j∑μ(k)
考虑到,若
gcd(i,j)=d,那么
i,j 都是
d 的倍数,且
gcd(di,dj)=dd=1,
因此,直接枚举
d 的倍数。
换元
i′=di,j′=dj,
因此,
i′ 的上限就变为了
⌊dn⌋,
gcd(i′,j′)=1。
[gcd(i′,j′)=1] 可以直接使用莫比乌斯函数的性质。
以约数个数和为例,
设
d(x) 表示
x 的约数个数:
====i=1∑nj=1∑md(ij)i=1∑nj=1∑mu∣i∑v∣j∑[gcd(u,v)=1]u=1∑nv=1∑m[gcd(u,v)=1]u∣i∑v∣j∑1u=1∑nv=1∑m[gcd(u,v)=1]⌊un⌋⌊vm⌋u=1∑nv=1∑m⌊un⌋⌊vm⌋d∣i∧d∣j∑μ(d)
这里对
d(ij)=u∣i∑v∣j∑[gcd(u,v)=1] 不展开证明,感兴趣的可以自证。
技巧 3:交换大型运算符+换元
=====d=1∑min{n,m}f(d)i=1∑⌊dn⌋j=1∑⌊dm⌋k∣i∧k∣j∑μ(k)d=1∑min{n,m}f(d)k=1∑min{⌊dn⌋,⌊dm⌋}μ(k)i=1∑⌊kdn⌋j=1∑⌊kdm⌋1d=1∑min{n,m}f(d)k=1∑min{⌊dn⌋,⌊dm⌋}μ(k)⌊kdn⌋⌊kdm⌋d=1∑min{n,m}k=1∑min{⌊dn⌋,⌊dm⌋}f(d)μ(k)⌊kdn⌋⌊kdm⌋t=1∑min{n,m}k∣t∑f(kt)μ(k)⌊tn⌋⌊tm⌋t=1∑min{n,m}⌊tn⌋⌊tm⌋k∣t∑f(kt)μ(k)
将含
μ 的式子换到第二个,再令
t=kd,得到最终式子。
以约数个数和为例:
==u=1∑nv=1∑m⌊un⌋⌊vm⌋d∣i∧d∣j∑μ(d)d=1∑min{n,m}μ(d)d∣i∧i≤n∑⌊in⌋d∣j∧j≤m∑⌊jm⌋d=1∑min{n,m}μ(d)i=1∑⌊dn⌋⌊idn⌋j=1∑⌊dm⌋⌊jdm⌋
技巧 4:快速预处理
运用狄利克雷卷积,推出积性:
f(x)=d∣x∑dxμ(d)
可以看作:
f=Id1∗μ,
由于
Id1,μ 都是积函数,
所以
f 是积函数。
直接推出积性:
f(x)=d∣x∑dμ(d)
定义
g(x)=xμ(x),
设
a,b 满足
gcd(a,b)=1,
g(ab)=abμ(ab)=aμ(a)bμ(b)=g(a)g(b),
因此
g 为积函数,
又因为
f=Id0∗g,所以
f 也是积函数。
当然,不乏有棘手的式子难以转移,
这类转移有时是题的难点,
不妨打表得到结论反推证明。
技巧 5:换眼光看式子
以约数个数和为例:
=d=1∑min{n,m}μ(d)i=1∑⌊dn⌋⌊idn⌋j=1∑⌊dm⌋⌊jdm⌋d=1∑min{n,m}μ(d)i=1∑⌊dn⌋⌊i⌊dn⌋⌋j=1∑⌊dm⌋⌊j⌊dm⌋⌋
这种形式便于预处理:
f(x)=i=1∑x⌊ix⌋。
技巧 6:无关项分别求解
在乘法的莫比乌斯反演中很可能出现,
以幽灵乐团为例:
i=1∏Aj=1∏Bk=1∏C(gcd(i,k)lcm(i,j))α
观察上式,可以将其拆为:
(i=1∏Aj=1∏Bk=1∏Cgcd(i,j)α)(i=1∏Aj=1∏Bk=1∏Cgcd(i,k)α)(i=1∏Aj=1∏Bk=1∏Ciα)(i=1∏Aj=1∏Bk=1∏Cjα)
技巧 7:对数反演
(名字是乱起的)
定义
ln(f)(x)=ln(f(x)),exp(f)(x)=exp(f(x)),
那么
f=exp(ln(f)),
ln 可以让运算降级,方便计算。
技巧 8:积分估值
有时会出现双重整数分块:
i=1∑n⌊in⌋j=1∑⌊in⌋⌊jn⌋j
这一式子计算的复杂度为
Θ(n43),可以使用积分估值计算复杂度。