題解[zt的數論題]
前言:希望大家在做數論題時不應僅僅侷限於套路,更應清楚本質。
題意:
記 \(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)\)
這部分雖然是個狄利克雷卷積形式,但遺憾的是 \(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}\)
程式碼就不放了。