预备知识
枚举除法
⌊ni⌋
只有
O(n√)
种取值
并且对于i,
⌊n⌊ni⌋⌋
是i被n除并下取整取值相同的一段区间的右端点
一个非常有用性质:
⌊nab⌋=⌊⌊na⌋b⌋=⌊⌊nb⌋a⌋
积性函数
f(ab)=f(a)f(b),(a,b)=1
完全积性函数:不要求ab互质。
若函数
f(n)
为积性函数,那么
f(n)=∏if(pkii)
并且由于
f(a∗1)=f(a)∗f(1)
可以得出
f(1)=1
常见函数
id(n)=n
e(n)=[n=1]
1(n)=1
d(n)=
n的约数数量
σ(n)=
n所有约数的和
除了最后一个其余都是积性函数
狄利克雷卷积
对于算术函数
f(n),g(n)
,定义其狄利克雷卷积
(f×g)(n)=∑d|nf(d)g(nd)
比如说一个公式
n=∑d|nφ(d)
就可以表示为:
id=φ×1
狄利克雷卷积的运算满足:
(1)交换律:
f×g=g×f
(2)结合律:
(f×g)×h=f×(g×h)
(3)分配律:
f×(g+h)=f×g+f×h
几个性质:
1、存在单位函数
e
满足
可以根据卷积的定义理解一下,枚举
n
的约数时,只有当
2、如果
f,g
都为积性函数,那么
f×g
也为积性函数
莫比乌斯函数 μ
定义
(1)若
d=1
,那么
μ(d)=1
(2)若
d=p1p2..pk
,
pi
均为互异素数,那么
μ(d)=(−1)k
(3)其他情况下,
μ(d)=0
显然, μ 为积性函数。
性质
[n=1]=∑d|nμ(d)
即
1×μ=e
不会证明…
莫比乌斯反演
公式
F(n)
和
f(n)
是定义在非负整数集合上的两个函数
若满足条件
F(n)=∑d|nf(d)
那么可以得出结论
f(n)=∑d|nμ(d)F(nd)
即已知
F=f×1
则
f=μ×F
证明
利用狄利克雷卷积证明莫比乌斯反演公式
1° 已知
F=f×1
,两边同乘
μ
得
F×μ=f×1×μ
2°
1×μ=e
,那么
F×μ=f×e
3° 又因为
f×e=f
,得出
f=μ×F
证毕
另一个公式
F(n)
和
f(n)
是定义在非负整数集合上的两个函数
若满足条件
F(n)=∑n|df(d)
那么可以得出结论
f(n)=∑n|dμ(dn)F(d)
似乎这个公式在做题的时候更常用些
因为反演的题gcd用的比较多…
化式子常用技巧
∑i=1n∑d|i=∑d=1n⌊nd⌋
杜教筛
栗子:求 ∑i=1nφ(i) , ∑i=1nμ(i) , 1≤n≤231−1
关于杜教筛:
求
F(n)=∑if(i)
,存在
g=f×I
,
I
表示恒等函数,即
我们定义
G(n)=∑ig(i)
,就可以得到
F(n)=G(n)−∑iF(⌊ni⌋)
如果
G(n)
可以在一定时间内求解,那么我们最好情况下可以做到
O(n23)
的时间求解
F(n)
假设计算出
F(n)
的复杂度为
T(n)
,则有
T(n)=O(n√)+∑i=1n√T(i)+T(ni)
,这里只展开一层就可以了,更深层的复杂度是高阶小量,所以有
T(n)=∑∑i=1n√O(i√)+O(ni−−√)=O(n34)
。
如果用筛法预处理前k个
F(n)
,且
k≥n√
,则复杂度变为
T(n)=∑i=1nkni−−√=O(nk√)
,当
k=O(n23)
时可以取到较好的复杂度
T(n)=O(n23)
。
实际上上面的复杂度证明我也不懂…只是搬运了神犇的讲解…
φ
利用一个反演公式
n=∑d|nφ(d)=∑d|n,d<nφ(d)+φ(n)
得出
φ(n)=n−∑d|n,d<nφ(d)
那么设
P(n)=∑i=1nφ(n)
P(n)=∑i=1nφ(n)
=∑i=1n(i−∑d|i,d<iφ(d))
=n(n+1)2−∑i=1n∑d|i,d<iφ(d)
令
i=id
那么原式
=n(n+1)2−∑id=1n∑d|id,d<idφ(d)
=n(n+2)2−∑i=2n∑d=1⌊ni⌋φ(d)=n(n+1)2−∑i=2nP(⌊ni⌋)
也就是说
P(n)=n(n+1)2−∑i=2nP(⌊ni⌋)
μ
设
M(n)=∑i=1nμ(i)
同样利用一个反演公式
1(n)=∑d|nμ(d)
来化简
1(n)=∑i=1n[i=1]=∑i=1n∑d|iμ(d)=∑i=1n∑d=1n[d|i]μ(id)
令
i=id
那么原式
=∑id=1n∑d=1nμ(i)=∑d=1n∑i=1⌊nd⌋μ(i)=∑i=1n∑d=1⌊ni⌋μ(d)=∑i=1nM(⌊ni⌋)
也就是说
∑i=1nM(⌊ni⌋)=1
又因为
M(n)=∑i=1nM(⌊ni⌋)−∑i=2nM(⌊ni⌋)
所以
M(n)=1−∑i=2nM(⌊ni⌋)
咦怎么感觉就是省了点常数…
加几个链接:
http://blog.youkuaiyun.com/skywalkert/article/details/50500009
http://jiruyi910387714.is-programmer.com/posts/195270.html
http://www.cnblogs.com/abclzr/p/6242020.html