#H1019. [W1] 梦

[W1] 梦

题目描述

给定 nn 个长度为 2k2^k 的序列 {{Ai,j}j=02k1}i=0n1\{\{A_{i,j}\}^{2^k-1}_{j=0}\}_{i=0}^{n-1},求它们的 mod 998244353\bmod\ 998244353 循环卷积。

换句话说,计算 {Pi}i=02k1\{P_i\}_{i=0}^{2^k-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} $$

输入格式

第一行两个正整数 nnkk
接下来 nn 个非负整数 A0,0,A1,0,,An1,0A_{0,0},A_{1,0},\dots,A_{n-1,0}
定义 $f(x)=[(108616x)\oplus x]\bmod 2^{31} \bmod998244353$。
对于所有 0i<n,1i<2k0\le i<n,1\le i<2^kAi,jA_{i,j} 满足 Ai,j=f(Ai1,j)A_{i,j}=f(A_{i-1,j})

输出格式

一行 2k2^k 个非负整数,依次表示 P0,P1,,P2k1P_0,P_1,\dots,P_{2^k-1}

2 2
108616 1082902
537942285 676861806 480034636 632663940

数据规模与约定

&,\&,\oplus 分别是按位与和按位异或。

保证 0Ai,j<9982443530\le A_{i,j}<998244353

本题有 5050 组测试数据。

测试点 n=n= k=k=
11
22 22 1010
343\sim 4 1717
565\sim 6 5050
77 500500 1111
898\sim 9 100100 1717
101110\sim 11 128128
121412\sim 14 150150
151815\sim 18 200200
192019\sim 20 250250
212321\sim 23 256256
242524\sim 25 300300
262726\sim 27 350350
283028\sim 30 400400
313231\sim 32 450450
333633\sim 36 500500
364036\sim 40 512512
414341\sim 43 600600
445044\sim 50 666666