题目描述
给定 n 个长度为 2k 的序列 {{Ai,j}j=02k−1}i=0n−1,求它们的 mod 998244353 循环卷积。
换句话说,计算 {Pi}i=02k−1,其中:
$$P_d=\underbrace{\sum_{a_0=0}^{2^k-1}\sum_{a_1=0}^{2^k-1}\dots\sum_{a_{n-1}=0}^{2^k-1}}_{a_0\text{ 到 }a_{n-1}}[(\sum_{i=0}^{n-1}a_i)\&(2^k-1)=d]\prod_{i=0}^{n-1}A_{i,a_i}
$$
输入格式
第一行两个正整数 n 和 k。
接下来 n 个非负整数 A0,0,A1,0,…,An−1,0。
定义 $f(x)=[(108616x)\oplus x]\bmod 2^{31} \bmod998244353$。
对于所有 0≤i<n,1≤i<2k,Ai,j 满足 Ai,j=f(Ai−1,j)。
输出格式
一行 2k 个非负整数,依次表示 P0,P1,…,P2k−1。
2 2
108616 1082902
537942285 676861806 480034636 632663940
数据规模与约定
&,⊕ 分别是按位与和按位异或。
保证 0≤Ai,j<998244353。
本题有 50 组测试数据。
测试点 |
n= |
k= |
1 |
2 |
2 |
10 |
3∼4 |
17 |
5∼6 |
50 |
7 |
500 |
11 |
8∼9 |
100 |
17 |
10∼11 |
128 |
12∼14 |
150 |
15∼18 |
200 |
19∼20 |
250 |
21∼23 |
256 |
24∼25 |
300 |
26∼27 |
350 |
28∼30 |
400 |
31∼32 |
450 |
33∼36 |
500 |
36∼40 |
512 |
41∼43 |
600 |
44∼50 |
666 |