DTOJ 4701. Convolution

题意

对序列 a 1 … n a_{1\dots n} a1n,求 ∑ i = 1 n ∑ j = 1 n 2 a i a j   m o d   998244353 \sum_{i=1}^n\sum_{j=1}^n 2^{a_i a_j} \bmod 998244353 i=1nj=1n2aiajmod998244353.

子任务一 ( 30 30 30pts), n ≤ 100 n\le 100 n100.

子任务二 ( 30 30 30pts), a i ≤ 1 0 3 a_i\le 10^3 ai103.

子任务三 ( 40 40 40pts),无特殊限制.

对所有数据, n ≤ 1 0 5 n\le 10^5 n105 0 ≤ a i ≤ 1 0 5 0\le a_i\le 10^5 0ai105.

题解

挺巧妙的一道题,考察对卷积的构造能力。
由子任务二想到记 b [ i ] b[i] b[i] i i i的个数, a n s = ∑ i ∑ j b [ i ] b [ j ] 2 i j ans=\sum_{i}\sum_{j} b[i]b[j]2^{ij} ans=ijb[i]b[j]2ij。如果 2 2 2的次数能用 f [ i ] + f [ j ] f[i]+f[j] f[i]+f[j]的形式表示,就可以直接卷积了。考虑把 i j ij ij化成与 f [ i ] + f [ j ] f[i]+f[j] f[i]+f[j]的形式:联想到 ( i + j ) 2 = i 2 + j 2 + 2 i j (i+j)^{2}=i^{2}+j^{2}+2ij (i+j)2=i2+j2+2ij,考虑将 2 2 2变成 2 \sqrt{2} 2 以凑出 2 i j 2ij 2ij,于是变为 2 ( i + j ) 2 − i 2 − j 2 \sqrt{2}^{(i+j)^{2}-i^{2}-j^{2}} 2 (i+j)2i2j2,就可以卷积了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值