题意
对序列 a 1 … n a_{1\dots n} a1…n,求 ∑ 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=1n∑j=1n2aiajmod998244353.
子任务一 ( 30 30 30pts), n ≤ 100 n\le 100 n≤100.
子任务二 ( 30 30 30pts), a i ≤ 1 0 3 a_i\le 10^3 ai≤103.
子任务三 ( 40 40 40pts),无特殊限制.
对所有数据, n ≤ 1 0 5 n\le 10^5 n≤105, 0 ≤ a i ≤ 1 0 5 0\le a_i\le 10^5 0≤ai≤105.
题解
挺巧妙的一道题,考察对卷积的构造能力。
由子任务二想到记
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=∑i∑jb[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)2−i2−j2,就可以卷积了。