luogu#P10461. 多项式复合集合幂级数

多项式复合集合幂级数

题目描述

给定一个集合幂级数 F(x)F(x) 和一个多项式 G(x)G(x)。定义 xx 的乘法为子集卷积,你需要对 S{1,2,,n}S\subseteq\{1,2,\cdots,n\} 求出 [xS]G(F(x))[x^S]G(F(x))998244353998244353 取模后的值。

如果你仍不清楚题意,可以阅读题面最后的提示部分。

输入格式

第一行一个正整数 nn

接下来一行 2n2^n 个非负整数,第 ii 个整数表示 [xS]F(x)[x^S]F(x),其中 aSa\in S 当且仅当 (i1)(i-1) 二进制下从低到高第 aa 位为 11

接下来一行 n+1n+1 个非负整数,第 ii 个整数表示 [xi1]G(x)[x^{i-1}]G(x)

输出格式

输出一行 2n2^n 个非负整数,第 ii 个整数表示 [xS]G(F(x))[x^S]G(F(x))998244353998244353 取模后的值,其中 aSa\in S 当且仅当 (i1)(i-1) 二进制下从低到高第 aa 位为 11

2
1 2 3 4
2 1 1
2 2 3 16 

4
1 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 

提示

【数据范围】

对于所有数据,保证 1n201\le n\le 20[xS]F(x),[xn]G(x)[0,998244353)Z[x^S]F(x),[x^n]G(x)\in[0,998244353)\cap\mathbb Z

本题有 2020 个测试点,第 ii 个测试点满足 n=in=i

【提示】

假设 F(x)=SfSxSF(x)=\displaystyle \sum_S f_Sx^S,那么 [xS]F(x)=fS[x^S]F(x)=f_S

在本题中,xx 的乘法被定义为子集卷积,即:

$$x^S\cdot x^T=\begin{cases}0&S\cap T\neq\varnothing\\x^{S\cup T}&\text{otherwise}\end{cases} $$