莫比乌斯反演的一些简单应用#2

这篇接着莫比乌斯反演的一些简单应用#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”。

posted @ 2019-06-09 21:08  WR_Eternity  阅读(230)  评论(0编辑  收藏  举报