一些反演求和过程?

105 篇文章 0 订阅
57 篇文章 0 订阅

.
问题 ∑ i , j &lt; = n i a j a ( i , j ) b \sum_{i,j&lt;=n}i^aj^a(i,j)^b i,j<=niaja(i,j)b f ( d ) = ∑ ( i , j ) = d i a j a F ( d ) = ∑ d ∣ i , d ∣ j i a j a f(d)=\sum_{(i,j)=d}i^aj^a \\ F(d)=\sum_{d|i,d|j}i^aj^a f(d)=(i,j)=diajaF(d)=di,djiaja可得 F ( d ) = ∑ k f ( k d ) F(d)=\sum_{k}f(kd) F(d)=kf(kd) f ( d ) = ∑ k F ( k d ) μ ( k ) f(d)=\sum_{k}F(kd)\mu(k) f(d)=kF(kd)μ(k)带入得到 ∑ d = 1 n d b f ( d ) \sum_{d=1}^nd^bf(d) d=1ndbf(d) = ∑ d = 1 n d b ∑ k F ( k d ) μ ( k ) =\sum_{d=1}^nd^b\sum_{k}F(kd)\mu(k) =d=1ndbkF(kd)μ(k) = ∑ i j &lt; = n F ( i j ) i b μ ( j ) =\sum_{ij&lt;=n}F(ij)i^b\mu(j) =ij<=nF(ij)ibμ(j) = ∑ T = 1 n F ( T ) ∑ d ∣ T d b μ ( T d ) =\sum_{T=1}^nF(T)\sum_{d|T}d^b\mu(\frac{T}{d}) =T=1nF(T)dTdbμ(dT)因为 F ( z ) = z 2 a ∑ i z &lt; = n , j z &lt; = n i a j a F(z)=z^{2a}\sum_{iz&lt;=n,jz&lt;=n}i^aj^a F(z)=z2aiz<=n,jz<=niaja = z 2 a ∗ ( ∑ i = 1 n z i a ) 2 =z^{2a}*(\sum_{i=1}^{\frac{n}{z}}i^a)^2 =z2a(i=1znia)2
可以得到 G ( x ) = ∑ [ n z ] = x F ( z ) = ( ∑ i = 1 n z i a ) 2 ∗ ( ∑ z z 2 a ) 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 ( n a ) O(\sqrt{n}a) O(n a)计算前缀和
让后考虑计算 μ ∗ i d b \mu*id^b μidb
注意到 I ∗ μ ∗ i d b = i d b I*\mu*id^b=id^b Iμidb=idb,考虑直接杜教筛即可


.
∑ i = 1 n ∑ j = 1 n ( i j ) ( i , j ) \sum_{i=1}^n\sum_{j=1}^n(ij)^{(i,j)} i=1nj=1n(ij)(i,j)
= ∑ d = 1 n ∑ ( i , j ) = d ( i j ) d =\sum_{d=1}^n\sum_{(i,j)=d}(ij)^d =d=1n(i,j)=d(ij)d
= ∑ d = 1 n d 2 d ∑ i d &lt; = n ∑ j d &lt; = n ( i j ) 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 = 1 n d 2 d ∑ i d &lt; = n ∑ j d &lt; = n ( i j ) 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 = 1 n d 2 d μ ( t ) ∑ i , j &lt; = n d t ( i t ) d ( j t ) 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 = 1 n d 2 d t 2 d μ ( t ) ∑ i , j &lt; = n d t ( i j ) 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 ( i j ) d F(x,d)=\sum_{i,j&lt;=x}(ij)^d F(x,d)=i,j<=x(ij)d
= ∑ d t &lt; = n d 2 d t 2 d μ ( t ) F ( n / d t , d ) =\sum_{dt&lt;=n}d^{2d}t^{2d}\mu(t)F(n/dt,d) =dt<=nd2dt2dμ(t)F(n/dt,d)
发现有效的 d t dt dt只有 O ( n log ⁡ n ) O(n \log n) O(nlogn),问题变为如何计算 F ( x , d ) F(x,d) F(x,d)
F ( x , d ) = ( ∑ i = 1 x i d ) 2 F(x,d)=(\sum_{i=1}^xi^d)^2 F(x,d)=(i=1xid)2发现需要 min ⁡ ( O ( d ) , O ( x ) ) \min(O(d),O(x)) min(O(d),O(x))的复杂度来计算
于是先枚举 t t t,再卡常一下就可以了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值