题解[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}\)

代码就不放了。

posted @ 2021-08-23 13:06  Y_B_X  阅读(100)  评论(0编辑  收藏  举报