Content:数论
Date:2025.7.30
课堂内容
莫比乌斯函数
定义如下:
μ(n)=⎩⎨⎧1(−1)k0n=1n=p1p2p3…pk,∀pi∈Potherwise
其中莫比乌斯函数有如下性质:
d∣n∑μ(d)=[n=1]
欧拉函数
定义如下:
φ(n)=i=1∑n[gcd(n,i)=1]
其中欧拉函数具有如下性质:
d∣n∑φ(d)=n
莫比乌斯反演
对于任意两个数论函数 f(n),g(n),有如下推导:
f(n)=d∣n∑g(d)⇔g(n)=d∣n∑μ(d)f(dn)
例题
题意
给定 n,m,求:
i=1∑nj=1∑m[gcd(i,j)∈Prime]
思路
课上没怎么听懂,自己推了下竟然推出来了。
我们看到 [gcd(i,j)∈Prime],考虑从质数入手,可以枚举质数,这样式子化为:
i=1∑nj=1∑mp∈Prime∑[gcd(pi,pj)=1]
把质数枚举提到前面去,得到:
=p∈Prime∑i=1∑nj=1∑m[gcd(pi,pj)=1]p∈Prime∑i=1∑⌊pn⌋j=1∑⌊pm⌋[gcd(i,j)=1]
对于后面一个埃德森括号,发现可以使用莫比乌斯函数的 d∣n∑μ(d)=[n=1] 这个性质,于是式子化为(这里钦定 n<m):
=p∈Prime∑i=1∑⌊pn⌋j=1∑⌊pm⌋d∣gcd(i,j)∑μ(d)p∈Prime∑d=1∑nμ(d)⌊pdn⌋⌊pdm⌋
令 pd=t,则:
p∈Prime∑d=1∑nμ(d)⌊tn⌋⌊tm⌋
这时候这个和式就可以划分为两个互相独立的部分,所以:
t=1∑n⌊tn⌋⌊tm⌋p∣t,p∈Prime∑μ(pt)
前面一个和式可以整除分块,后面的可以前缀和,这样我们就做完啦~~~
提交记录:link
题目大意
给定 a,b 和 d,求:
i=1∑aj=1∑b[gcd(i,j)=d]
思路
对于给定的式子,我们和第一题一样做如下变换:
令 n=da,m=db,则
===i=1∑nj=1∑m[gcd(i,j)=1]i=1∑nj=1∑mk∣gcd(i,j)∑μ(k)k=1∑ni=1∑⌊kn⌋j=1∑⌊km⌋μ(k)k=1∑nμ(k)⌊kn⌋⌊km⌋
所以又变回了第一题的整除分块加前缀和了。
提交记录:link
题目大意
已知函数 d(n) 表示整数 n 的约数个数,给定 n,m 求:
i=1∑nj=1∑md(ij)
思路
对于函数 d(n),可以发现这是一个积性函数,但是不是一个完全积性函数,所以不能把 d(ij) 拆成 d(i)×d(j)。
但是对于这个形式的函数 d(n),我们可以根据定义发现另一个更优秀的性质:
d(ij)=x∣i∑y∣j∑[gcd(x,y)=1]
通过枚举原来的 i,j,加上容斥,我们就可以把 d(ij) 写开来,这样有利于后面的变换。
=====i=1∑nj=1∑md(ij)i=1∑nj=1∑mx∣i∑y∣j∑[gcd(x,y)=1]i=1∑nj=1∑mx∣i∑y∣j∑d∣gcd(x,y)∑μ(d)x=1∑ny=1∑m⌊xn⌋⌊ym⌋d∣gcd(x,y)∑μ(d)d=1∑nμ(d)x=1∑⌊dn⌋y=1∑⌊dm⌋⌊xn⌋⌊ym⌋d=1∑nμ(d)(x=1∑⌊dn⌋⌊xdn⌋)(y=1∑⌊dm⌋⌊ydm⌋)
令 f(x)=i=1∑n⌊in⌋,则原式可以表达为:
d=1∑nμ(d)f(⌊dn⌋)f(⌊dm⌋)
对于 μ(d),f(n) 均可以预处理得到,剩下的就是整除分块了。
提交记录:link