题目描述
给定一个集合幂级数 F(x),保证 [x∅]F(x)=1。定义 x 的乘法为子集卷积,可以证明存在一个 G(x) 满足 eG(x)=F(x),你需要对 S⊆{1,2,⋯,n} 求出 [xS]G(x) 对 998244353 取模后的值。
如果你仍不清楚题意,可以阅读题面最后的提示部分。
输入格式
第一行一个正整数 n。
接下来一行 2n 个非负整数,第 i 个整数表示 [xS]F(x),其中 a∈S 当且仅当 (i−1) 二进制下从低到高第 a 位为 1。
输出格式
输出一行 2n 个非负整数,第 i 个整数表示 [xS]G(x) 对 998244353 取模后的值,其中 a∈S 当且仅当 (i−1) 二进制下从低到高第 a 位为 1。
2
1 2 3 4
0 2 3 998244351
4
1 8 3 9 2 0 1 8 7 0 0 1 7 3 4 1
0 8 3 998244338 2 998244337 998244348 78 7 998244297 998244332 274 998244346 171 60 998242876
提示
【数据范围】
对于所有数据,保证 1≤n≤20,[xS]F(x)∈[0,998244353)∩Z,[x∅]F(x)=1。
本题有 20 个测试点,第 i 个测试点满足 n=i。
【提示】
假设 F(x)=∑SfSxS,那么 [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}
$$
根据泰勒展开,有:
eF(x)=n≥0∑n!Fn(x)
可以证明本题答案唯一。