一些反演求和过程?

.
问题∑i,j&lt;=niaja(i,j)b\sum_{i,j&lt;=n}i^aj^a(i,j)^bi,j<=niaja(i,j)bf(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)=diajaF(d)=di,djiaja可得F(d)=∑kf(kd)F(d)=\sum_{k}f(kd)F(d)=kf(kd)f(d)=∑kF(kd)μ(k)f(d)=\sum_{k}F(kd)\mu(k)f(d)=kF(kd)μ(k)带入得到∑d=1ndbf(d)\sum_{d=1}^nd^bf(d)d=1ndbf(d)=∑d=1ndb∑kF(kd)μ(k)=\sum_{d=1}^nd^b\sum_{k}F(kd)\mu(k)=d=1ndbkF(kd)μ(k)=∑ij&lt;=nF(ij)ibμ(j)=\sum_{ij&lt;=n}F(ij)i^b\mu(j)=ij<=nF(ij)ibμ(j)=∑T=1nF(T)∑d∣Tdbμ(Td)=\sum_{T=1}^nF(T)\sum_{d|T}d^b\mu(\frac{T}{d})=T=1nF(T)dTdbμ(dT)因为F(z)=z2a∑iz&lt;=n,jz&lt;=niajaF(z)=z^{2a}\sum_{iz&lt;=n,jz&lt;=n}i^aj^aF(z)=z2aiz<=n,jz<=niaja=z2a∗(∑i=1nzia)2=z^{2a}*(\sum_{i=1}^{\frac{n}{z}}i^a)^2=z2a(i=1znia)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]=xF(z)=(i=1znia)2(zz2a)
预处理伯努利数,可以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=1nj=1n(ij)(i,j)
=∑d=1n∑(i,j)=d(ij)d=\sum_{d=1}^n\sum_{(i,j)=d}(ij)^d=d=1n(i,j)=d(ij)d
=∑d=1nd2d∑id&lt;=n∑jd&lt;=n(ij)d[(i,j)=1]=\sum_{d=1}^nd^{2d}\sum_{id&lt;=n}\sum_{jd&lt;=n}(ij)^d[(i,j)=1]=d=1nd2did<=njd<=n(ij)d[(i,j)=1]
=∑d=1nd2d∑id&lt;=n∑jd&lt;=n(ij)d∑t∣i,t∣jμ(t)=\sum_{d=1}^nd^{2d}\sum_{id&lt;=n}\sum_{jd&lt;=n}(ij)^d\sum_{t|i,t|j}\mu(t)=d=1nd2did<=njd<=n(ij)dti,tjμ(t)
=∑d=1,t=1nd2dμ(t)∑i,j&lt;=ndt(it)d(jt)d=\sum_{d=1,t=1}^nd^{2d}\mu(t)\sum_{i,j&lt;=\frac{n}{dt}}(it)^d(jt)^d=d=1,t=1nd2dμ(t)i,j<=dtn(it)d(jt)d
=∑d=1,t=1nd2dt2dμ(t)∑i,j&lt;=ndt(ij)d=\sum_{d=1,t=1}^nd^{2d}t^{2d}\mu(t)\sum_{i,j&lt;=\frac{n}{dt}}(ij)^d=d=1,t=1nd2dt2dμ(t)i,j<=dtn(ij)d
F(x,d)=∑i,j&lt;=x(ij)dF(x,d)=\sum_{i,j&lt;=x}(ij)^dF(x,d)=i,j<=x(ij)d
=∑dt&lt;=nd2dt2dμ(t)F(n/dt,d)=\sum_{dt&lt;=n}d^{2d}t^{2d}\mu(t)F(n/dt,d)=dt<=nd2dt2dμ(t)F(n/dt,d)
发现有效的dtdtdt只有O(nlog⁡n)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=1xid)2发现需要min⁡(O(d),O(x))\min(O(d),O(x))min(O(d),O(x))的复杂度来计算
于是先枚举ttt,再卡常一下就可以了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值