题目描述
给定一个集合幂级数 F(x),保证 [x∅]F(x)=0。定义 x 的乘法为子集卷积,可以证明存在一个 G(x) 满足 F(x)G(x)=1,你需要对 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
1 998244351 998244350 8
4
1 1 4 5 1 4 1 9 1 9 8 1 0 1 2 3
1 998244352 998244349 3 998244352 998244351 7 11 998244352 998244346 0 73 2 19 998244345 998244164
提示
【数据范围】
对于所有数据,保证 1≤n≤20,[xS]F(x)∈[0,998244353)∩Z,[x∅]F(x)=0。
本题有 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}
$$
可以证明本题答案唯一。