.
问题∑i,j<=niaja(i,j)b\sum_{i,j<=n}i^aj^a(i,j)^bi,j<=n∑iaja(i,j)b记f(d)=∑(i,j)=diajaF(d)=∑d∣i,d∣jiajaf(d)=\sum_{(i,j)=d}i^aj^a \\ F(d)=\sum_{d|i,d|j}i^aj^af(d)=(i,j)=d∑iajaF(d)=d∣i,d∣j∑iaja可得F(d)=∑kf(kd)F(d)=\sum_{k}f(kd)F(d)=k∑f(kd)f(d)=∑kF(kd)μ(k)f(d)=\sum_{k}F(kd)\mu(k)f(d)=k∑F(kd)μ(k)带入得到∑d=1ndbf(d)\sum_{d=1}^nd^bf(d)d=1∑ndbf(d)=∑d=1ndb∑kF(kd)μ(k)=\sum_{d=1}^nd^b\sum_{k}F(kd)\mu(k)=d=1∑ndbk∑F(kd)μ(k)=∑ij<=nF(ij)ibμ(j)=\sum_{ij<=n}F(ij)i^b\mu(j)=ij<=n∑F(ij)ibμ(j)=∑T=1nF(T)∑d∣Tdbμ(Td)=\sum_{T=1}^nF(T)\sum_{d|T}d^b\mu(\frac{T}{d})=T=1∑nF(T)d∣T∑dbμ(dT)因为F(z)=z2a∑iz<=n,jz<=niajaF(z)=z^{2a}\sum_{iz<=n,jz<=n}i^aj^aF(z)=z2aiz<=n,jz<=n∑iaja=z2a∗(∑i=1nzia)2=z^{2a}*(\sum_{i=1}^{\frac{n}{z}}i^a)^2=z2a∗(i=1∑znia)2
可以得到G(x)=∑[nz]=xF(z)=(∑i=1nzia)2∗(∑zz2a)G(x)=\sum_{[\frac{n}{z}]=x}F(z)=(\sum_{i=1}^{\frac{n}{z}}i^a)^2*(\sum_zz^{2a})G(x)=[zn]=x∑F(z)=(i=1∑znia)2∗(z∑z2a)
预处理伯努利数,可以O(na)O(\sqrt{n}a)O(na)计算前缀和
让后考虑计算μ∗idb\mu*id^bμ∗idb
注意到I∗μ∗idb=idbI*\mu*id^b=id^bI∗μ∗idb=idb,考虑直接杜教筛即可
.
∑i=1n∑j=1n(ij)(i,j)\sum_{i=1}^n\sum_{j=1}^n(ij)^{(i,j)}i=1∑nj=1∑n(ij)(i,j)
=∑d=1n∑(i,j)=d(ij)d=\sum_{d=1}^n\sum_{(i,j)=d}(ij)^d=d=1∑n(i,j)=d∑(ij)d
=∑d=1nd2d∑id<=n∑jd<=n(ij)d[(i,j)=1]=\sum_{d=1}^nd^{2d}\sum_{id<=n}\sum_{jd<=n}(ij)^d[(i,j)=1]=d=1∑nd2did<=n∑jd<=n∑(ij)d[(i,j)=1]
=∑d=1nd2d∑id<=n∑jd<=n(ij)d∑t∣i,t∣jμ(t)=\sum_{d=1}^nd^{2d}\sum_{id<=n}\sum_{jd<=n}(ij)^d\sum_{t|i,t|j}\mu(t)=d=1∑nd2did<=n∑jd<=n∑(ij)dt∣i,t∣j∑μ(t)
=∑d=1,t=1nd2dμ(t)∑i,j<=ndt(it)d(jt)d=\sum_{d=1,t=1}^nd^{2d}\mu(t)\sum_{i,j<=\frac{n}{dt}}(it)^d(jt)^d=d=1,t=1∑nd2dμ(t)i,j<=dtn∑(it)d(jt)d
=∑d=1,t=1nd2dt2dμ(t)∑i,j<=ndt(ij)d=\sum_{d=1,t=1}^nd^{2d}t^{2d}\mu(t)\sum_{i,j<=\frac{n}{dt}}(ij)^d=d=1,t=1∑nd2dt2dμ(t)i,j<=dtn∑(ij)d
记F(x,d)=∑i,j<=x(ij)dF(x,d)=\sum_{i,j<=x}(ij)^dF(x,d)=∑i,j<=x(ij)d
=∑dt<=nd2dt2dμ(t)F(n/dt,d)=\sum_{dt<=n}d^{2d}t^{2d}\mu(t)F(n/dt,d)=dt<=n∑d2dt2dμ(t)F(n/dt,d)
发现有效的dtdtdt只有O(nlogn)O(n \log n)O(nlogn),问题变为如何计算F(x,d)F(x,d)F(x,d)
F(x,d)=(∑i=1xid)2F(x,d)=(\sum_{i=1}^xi^d)^2F(x,d)=(i=1∑xid)2发现需要min(O(d),O(x))\min(O(d),O(x))min(O(d),O(x))的复杂度来计算
于是先枚举ttt,再卡常一下就可以了