题目描述
给定一个集合幂级数 F(x) 和一个多项式 G(x),保证 [x∅]F(x)=0。定义 x 的乘法为子集卷积,你需要对 S⊆{1,2,⋯,n} 求出 [xS]G(F(x)) 对 998244353 取模后的值。
如果你仍不清楚题意,可以阅读题面最后的提示部分。
输入格式
第一行一个正整数 n。
接下来一行 2n 个非负整数,第 i 个整数表示 [xS]F(x),其中 a∈S 当且仅当 (i−1) 二进制下从低到高第 a 位为 1。
接下来一行 n+1 个非负整数,第 i 个整数表示 [xi−1]G(x)。
输出格式
输出一行 2n 个非负整数,第 i 个整数表示 [xS]G(F(x)) 对 998244353 取模后的值,其中 a∈S 当且仅当 (i−1) 二进制下从低到高第 a 位为 1。
2
0 1 2 3
2 1 1
2 1 2 7
4
0 8 3 2 7 3 9 0 0 1 8 2 3 7 0 2
1 0 4 8 2
1 0 0 192 0 448 168 8824 0 0 0 536 0 248 520 26560
提示
【数据范围】
对于所有数据,保证 1≤n≤20,[xS]F(x),[xn]G(x)∈[0,998244353)∩Z。
本题有 20 个测试点,第 i 个测试点满足 n=i。
【提示】
假设 F(x)=S∑fSxS,那么 [xS]F(x)=fS。
在本题中,x 的乘法被定义为子集卷积,即:
$$x^S\cdot x^T=\begin{cases}0&S\cap T\neq\varnothing\\x^{S\cup T}&\text{otherwise}\end{cases}
$$
请注意内存访问连续性带来的效率差异。