题目大意:
给定\(n\),\(p\),求
\[(\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}ijgcd(i,j))mod p\]
前置芝士:
莫比乌斯反演
\[\mu*1=e\]
欧拉反演
\[\phi*1=n\]
杜教筛
点一下就有啦´ ▽ ` )ノ
首先我们很习惯地把\(gcd\)提出来
\[\sum\limits_{x=1}^{n}x\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}ij[gcd(i,j)==x]\]
然后把后面的\(x\)也提出来,由于\(i,j\)中少了一个x,所以前面变成\(x^3\)
\[\sum\limits_{x=1}^{n}x^3\sum\limits_{i=1}^{\lfloor\frac{n}{x}\rfloor}\sum\limits_{j=1}^{\lfloor\frac{n}{x}\rfloor}ij[gcd(i,j)==1]\]
对最后一个\(\sum\)进行莫比乌斯反演
\[\sum\limits_{x=1}^{n}x^3\sum\limits_{i=1}^{\lfloor\frac{n}{x}\rfloor}\sum\limits_{j=1}^{\lfloor\frac{n}{x}\rfloor}ij\sum\limits_{d|gcd(i,j)}\mu(d)\]
然后我们把最后一个\(\sum\)提前,枚举因子转枚举倍数
\[\sum\limits_{x=1}^{n}x^3\sum\limits_{d=1}^{\lfloor\frac{n}{x}\rfloor}d^2\mu(d)\sum\limits_{i=1}^{\lfloor\frac{n}{dx}\rfloor}\sum\limits_{j=1}^{\lfloor\frac{n}{dx}\rfloor}ij\]
对于最后两个\(\sum\),用等差数列求和可以化简为\(\frac{x^2(x+1)^2}{4}\),我们记做\(F(x)\)
\[\sum\limits_{x=1}^{n}x^3\sum\limits_{d=1}^{\lfloor\frac{n}{x}\rfloor}d^2\mu(d)F(\lfloor\frac{n}{dx}\rfloor)\]
然后似乎无法化简了,不过我们在YY的GCD中提到了一种方法:
设\(t=dx\),则
\[ret=\sum\limits_{t=1}^{n}F(\lfloor\frac{n}{t}\rfloor)t^2\sum\limits_{x|t}\mu(\frac{t}{x})(x)\]
最后一个\(\sum\)可以欧拉反演
\[ret=\sum\limits_{t=1}^{n}F(\lfloor\frac{n}{t}\rfloor)t^2\phi(t)\]
接下来,我们设\(f(t)=t^2\phi(t)\)
\[ret=\sum\limits_{t=1}^{n}F(\lfloor\frac{n}{t}\rfloor)f(t)\]
我们已经知道\(F(i)\)了,接下来只需要知道\(\sum\limits_{i=1}^{n}f(i)\)就可以除法分块了
显然后面这个东西是个积性函数,我们可以用杜教筛
也就是说我们要构造可以快速求前缀和的,满足\(h=f*g\)的\(h\)和\(g\)
观察\(f*g\),它等价于
\[\sum\limits_{i|x}i^2\phi(i)*g(x/i)\]
它前面的\(i^2\)令我们无法对\(h\)快速求前缀和,想办法消掉
令\(g(x)=x^2\),则
\[h(x)=\sum\limits_{i|x}i^2\phi(i)*(x/i)^2=x^2\sum\limits_{i|x}\phi(i)\]
这个\(\sum\)仍然可以用欧拉反演,得到
\[h(x)=x^3\]
然后运用小学奥数(雾),就可以得知
\[\sum\limits_{i=1}^{n}h(i)=\frac{x^2(x+1)^2}{4}\]
然后套下杜教筛,得到
\[g(1)S(n)=\sum\limits_{i=1}^{n}h(i)-\sum\limits_{i=2}^{n}g(i)S(\lfloor\frac{n}{i}\rfloor)\]
然后就可以快速求出\(f(i)\)的前缀和,进行除法分块了
复杂度\(O(\)能过\()\)
(貌似要用微积分,我自己推的复杂度好像不太对……
然后我们就做完了这道莫比乌斯反演题目,但是它为什么叫简单的数学题呢???
我们再看看题目
\[(\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}ijgcd(i,j))mod p\]
然后再看看这个
\[\phi*1=n\]
然后欧拉反演一下
\[\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}ij\sum\limits_{k|gcd(i,j)}\phi(k)\]
把\(k\)扔前面
\[\sum\limits_{k=1}^{n}\phi(k)*k^2\sum\limits_{i=1}^{\lfloor\frac{n}{k}\rfloor}\sum\limits_{j=1}^{\lfloor\frac{n}{k}\rfloor}ij\]
发现后面两项可以化简
\[\sum\limits_{k=1}^{n}\phi(k)*k^2\sum\limits_{i=1}^{\lfloor\frac{n}{k}\rfloor}i^3\]
然后继续套个杜教筛就好了\(qwq\)
这样就对得起它的题目名字了
但是上面莫比乌斯反演方法的各种套路都很经典,也值得一看