这篇接着莫比乌斯反演的一些简单应用#1,接着往下讲,没有看过上一篇博客的同学建议还是去看一下,很多在上一篇博客已经讲过的东西不在赘述,公式的推导过程有些跳跃。
例4:
求:(sum_{i=1}^nsum_{j=1}^mgcd(i,j))
我们先枚举一下(gcd):
( sum_{i=1}^nsum_{j=1}^mgcd(i,j))
(=sum_{d=1}^{n}dsum_{i=1}^nsum_{j=1}^m[gcd(i,j)=d])
(=sum_{d=1}^ndsum_{i=1}^{lfloorfrac n d floor}sum_{j=1}^{lfloorfrac m d floor}[gcd(i,j)=1])
(=sum_{d=1}^ndsum_{i=1}^{lfloorfrac n d floor}sum_{j=1}^{lfloorfrac m d floor}sum_{k|gcd(i,j)}mu(k))
(=sum_{d=1}^ndsum_{k=1}^{lfloorfrac n d floor}mu(k) imeslfloorfrac n {kd} floor imeslfloorfrac m {kd} floor)
在设(T=n imes k),然后把式子转化一下:
(=sum_{T=1}^nlfloorfrac n T floor imeslfloorfrac m T floorsum_{d|T}d imesmu(lfloorfrac T d floor))
因为(id*mu=varphi) 。
所以:
(=sum_{T=1}^nvarphi(T) imeslfloorfrac n T floor imeslfloorfrac m T floor)
然后我们就能在(O(sqrt{n}))的时间内求解啦。
例5:
求:(sum_{i=1}^nsum_{j=1}^mlcm(i,j))
先用一个小学学的式子,转换一下原式:(lcm(i,j)=frac{i imes j}{gcd(i,j)})
( sum_{i=1}^nsum_{j=1}^mlcm(i,j))
(=sum_{i=1}^nsum_{j=1}^mfrac{i imes j}{gcd(i,j)})
(=sum_{d=1}^ndsum_{k=1}^{lfloorfrac n d floor}mu(k) imes k^2 imessum_{i=1}^{lfloorfrac {n} {kd} floor}isum_{j=1}^{lfloorfrac {m} {kd} floor}j)
设:(T=n imes k,F[n]=sum_{i=1}^ni) 。
转换出来的式子张这样:
(=sum_{T=1}^nF[lfloorfrac{n}{T} floor] imes F[lfloorfrac{m}{T} floor]sum_{d|T}mu(frac T d) imes d imes(frac T d)^2)
(=sum_{T=1}^nF[lfloorfrac{n}{T} floor] imes F[lfloorfrac{m}{T} floor]sum_{d|T}mu(d) imes d imes T)
(=sum_{T=1}^nT imes F[lfloorfrac{n}{T} floor] imes F[lfloorfrac{m}{T} floor]sum_{d|T}mu(d) imes d)
嗯~~,看上去好像没有可以优化的地方。
但是我们的亲戚(gcd)是可以(O(sqrt{n}))解决的呀,凭啥我(lcm)不行?!
那么我们应该怎么优化呢?
en,要是(sum_{d|T}mu(d) imes d)是个积性函数那就好了。
等一下,好像和(id*mu)长得挺像的,好像还真有可能是积性函数。
要不来证一下试试?
设(f(n)=sum_{d|n}mu(d) imes d),有((a,b)=1) 。
那么因为((a,b)=1),所以(a,b)对于(f(a imes b))的贡献是独立不相交的。
得到(f(a imes b)=f(a) imes f(b),(a,b)=1)
众所周知——积性函数都能用欧拉筛在(O(sqrt{n}))的时间内求出来。
那么我们现在就来想一下怎么筛吧。
设(x)的最小质因子为(y),而(i=x\%y)。
开始分类讨论:
-
(x)是一个质数:(f(x)=mu(1) imes1+mu(x) imes x=1-x)
-
(x=p^k),即(x)是一个质数的(k)次方:
(f(x)=mu(1) imes1+mu(p) imes p+mu(p^2) imes p^2...+mu(p^k) imes k=1-p)
(因为(p^2)项及以后每个数都有多个相同的质因子,因此(mu(p^t)=0) 。)
所以如果有多个相同的质因子,其实对函数产生影响的只有(1)和(p)两个而已。
-
(i\%y eq0),即(x)的最小质因子(y)只有一个:
(f(x)=f(i) imes f(y)=f(i) imes(1-y))
-
(i\%y=0),即(x)的最小质因子(y)有多个:
同样的,只有(1)和(y)是有用的,所以:(f(x)=f(i))。
(Okay),大功告成!这样我们就能在(O(sqrt{n}))的时间内求解啦!
今天也就先到这了,有空更 “莫比乌斯反演的一些简单应用#3”。