题解[Zeta的数论题]
前言:希望大家在做数论题时不应仅仅局限于套路,更应清楚本质。
题意:
记 \(f(t)=\sum\limits_{k=1}^t k[\gcd(k,t)=1]\)
求 \(\sum\limits_{i=1}^n \sum\limits_{j=1}^n (i^2+j^2+ij)f(\gcd(i,j))\)
首先明显的,要求的式子可以莫比乌斯反演,得到
\(\sum\limits_{T=1}^n \left(T^2\sum\limits_{d|T}^{}f(d)\mu(T/d)\right) \sum\limits_{i=1}^{\left\lfloor\frac{n}{T}\right\rfloor} \sum\limits_{j=1}^{\left\lfloor\frac{n}{T}\right\rfloor}i^2+j^2+ij\)
此部分不再赘述。
如果能线性预处理出括号内外的式子,则此题便可数论分块做完。
先看相对简单的后半部分:
记 \(R(m)=\sum\limits_{i=1}^m \sum\limits_{j=1}^m (i^2+j^2+ij)\) 也即括号后面的式子。
则
\(R(m)=2\sum\limits_{i=1}^m i^2+\left(\sum\limits_{i=1}^m i\right)^2=\frac{m(m+1)(2m+1)}{3}+\frac{m^2(m+1)^2}{4}=\frac{m(m+1)(11m^2+7m)}{12}\)
这部分送分的就做完了。
设 \(g(T)=\sum\limits_{d|T}^{}f(d)\mu(T/d)\) 最终数论分块时只需成上 \(T^2\) 再做前缀和。
这部分虽然是个狄利克雷卷积形式,但遗憾的是 \(f(d)\) 并非积性函数,没法直接线性筛。
先对 \(f(d)\) 进行一次莫比乌斯反演:
\(f(d)=\sum\limits_{k=1}^d k\sum\limits_{i|k,i|d}\mu(i)=\sum\limits_{i|d}^{}\mu(i)\sum\limits_{i|k,1\leq k\leq d}k=\sum\limits_{i|d}\mu(i)i \sum\limits_{k=1}^{d/i}k\)
设 \(S(m)=\sum\limits_{i=1}^m i\)
因此 \(f(d)=\sum\limits_{i|d}^{}i\mu(i)S(\frac{d}{i})\)
这还是个狄利克雷卷积,但 \(S(m)=\frac{m(m+1)}{2}\) 还不是个积性函数。
到了这步不得不使用大招了:狄利克雷生成函数。
对此不十分了解的可先参考这篇文章,或具体数学 \(\text{Chapter 7}\) 最后一节(虽然没讲多少但值得挖掘)
先是 \(S(m)\) 的 \(\text{dgf}\) :
\(\varrho(z)=\sum\limits_{n\geq 1}^{}\dfrac{S(n)}{n^z}=\dfrac{1}{2} \left(\sum\limits_{n\geq 1}^{}\dfrac{n^2}{n^z}+\sum\limits_{n\geq 1}^{}\dfrac{n}{n^z}\right)=\dfrac{1}{2}\zeta(z-2)+\frac{1}{2}\zeta(z-1)\)
还有 \(i\mu(i)\) 的 \(\text{dgf}\) :
\(\psi(z)=\prod\limits_{p\in \text{Prime}}^{}1-\dfrac{p}{p^z}=\prod\limits_{p\in \text{Prime}}^{}1-p^{1-z}=\dfrac{1}{\zeta(z-1)}\)
所以 \(f(d)\) 的 \(\text{dgf}\) 就是:
\(\digamma(z)=\varrho(z)\ast \psi(z)=\dfrac{1}{2}+\dfrac{1} {2}\dfrac{\zeta(z-2)}{\zeta(z-1)}\)
然而 \(\varphi(d)\) 的 \(\text{dgf}\) 是:
\(\phi(z)=\dfrac{\zeta(z-1)}{\zeta(z)}\)
所以 \(\digamma(z)=\dfrac{1}{2}+\dfrac{1}{2}\phi(z-1)\)
因此 \(f(d)=\dfrac{1}{2}\left[d=1\right]+\dfrac{1}{2}d\varphi(d)\)
这的确出人意料的简洁!
于是我们满怀信心地带到最开始的 \(g(T)\) 中:
\(g(T)=\sum\limits_{d|T}^{}f(d)\mu(T/d)=\dfrac{1}{2}\left(\mu(T)+\sum\limits_{d|T}d\varphi(d)\mu(\frac{T}{d})\right)\)
再记 \(h(T)=\sum\limits_{d|T}d\varphi(d)\mu(\frac{T}{d})\) 这总算是个积性函数,能线性筛出来了!
对每一个质数 \(p\) ,\(k\geq 2\):
\(\begin{cases}h(1)=1\\h(p)=p\varphi(p)\mu(1)+1\varphi(1)\mu(p)=p^2-p-1\\h(p^2)=p^2(p^2-p)+p(p-1)\cdot(-1)+1\cdot1\cdot0=p^4-p^3-p^2+p\\h(p^k)=p^k(p^k-p^{k-1})-p^{k-1}(p^{k-1}-p^{k-2})=p^{2k}-p^{2k-1}-p^{2k-2}+p^{2k-3}\end{cases}\)
最后一行后面的因为莫比乌斯函数而没了。
所以线性筛到某个数有多个 \(p\) 时特判一下 \(p^2\) ,
其他的由于 \(h(p^{k+1})=p^2 h(p^k)\) 直接乘 \(p^2\) 就行了。
但这题还有点卡常……
有一个很重要的优化:线性筛 \(h(T)\) 时可以开着 \(\text{long long}\)不取模。
这是因为其 \(\text{dgf}\) 是 \(\dfrac{\zeta(z-2)}{\zeta(z-1)\zeta(z)}\)
而 \(\varphi(n^2)\) 的 \(\text{dgf}\) 是:
\(\prod\limits_{p\in \text{Prime}}1+\sum\limits_{k\geq 1}^{}\dfrac{\varphi(p^{2k})}{p^{zk}}=\prod\limits_{p\in \text{Prime}}\dfrac{1}{p}+\left(1-\dfrac{1}{p}\right)\sum\limits_{k\geq 0}\dfrac{p^{2k}}{p^{zk}}=\prod\limits_{p\in \text{Prime}}\dfrac{1-p^{1-z}}{1-p^{2-z}}=\dfrac{\zeta(z-1)}{\zeta(z-2)}\)
由于 \(\mu(i)\) 的 \(\text{dgf}\) 是 \(\dfrac{1}{\zeta(z)}\) ,且 \(\mu(i)\leq 1\)
所以 \(h(T)\leq \varphi(T^2)< t^2\) ,不会爆 \(\text{long long}\)
代码就不放了。