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