P10461 多项式复合集合幂级数
题目描述
给定一个集合幂级数 $F(x)$ 和一个多项式 $G(x)$,保证 $[x^{\varnothing}]F(x)=0$。定义 $x$ 的乘法为子集卷积,你需要对 $S\subseteq\{1,2,\cdots,n\}$ 求出 $[x^S]G(F(x))$ 对 $998244353$ 取模后的值。
如果你仍不清楚题意,可以阅读题面最后的提示部分。
输入格式
第一行一个正整数 $n$。
接下来一行 $2^n$ 个非负整数,第 $i$ 个整数表示 $[x^S]F(x)$,其中 $a\in S$ 当且仅当 $(i-1)$ 二进制下从低到高第 $a$ 位为 $1$。
接下来一行 $n+1$ 个非负整数,第 $i$ 个整数表示 $[x^{i-1}]G(x)$。
输出格式
输出一行 $2^n$ 个非负整数,第 $i$ 个整数表示 $[x^S]G(F(x))$ 对 $998244353$ 取模后的值,其中 $a\in S$ 当且仅当 $(i-1)$ 二进制下从低到高第 $a$ 位为 $1$。
说明/提示
#### 【数据范围】
对于所有数据,保证 $1\le n\le 20$,$[x^S]F(x),[x^n]G(x)\in[0,998244353)\cap\mathbb Z$。
本题有 $20$ 个测试点,第 $i$ 个测试点满足 $n=i$。
#### 【提示】
假设 $F(x)=\displaystyle \sum_S f_Sx^S$,那么 $[x^S]F(x)=f_S$。
在本题中,$x$ 的乘法被定义为子集卷积,即:
$$x^S\cdot x^T=\begin{cases}0&S\cap T\neq\varnothing\\x^{S\cup T}&\text{otherwise}\end{cases}$$
**请注意内存访问连续性带来的效率差异。**