P12231 集合幂级数 ln

题目描述

给定一个集合幂级数 $F(x)$,保证 $[x^{\varnothing}]F(x)=1$。定义 $x$ 的乘法为子集卷积,可以证明存在一个 $G(x)$ 满足 $e^{G(x)}=F(x)$,你需要对 $S\subseteq\{1,2,\cdots,n\}$ 求出 $[x^S]G(x)$ 对 $998244353$ 取模后的值。 如果你仍不清楚题意,可以阅读题面最后的提示部分。

输入格式

第一行一个正整数 $n$。 接下来一行 $2^n$ 个非负整数,第 $i$ 个整数表示 $[x^S]F(x)$,其中 $a\in S$ 当且仅当 $(i-1)$ 二进制下从低到高第 $a$ 位为 $1$。

输出格式

输出一行 $2^n$ 个非负整数,第 $i$ 个整数表示 $[x^S]G(x)$ 对 $998244353$ 取模后的值,其中 $a\in S$ 当且仅当 $(i-1)$ 二进制下从低到高第 $a$ 位为 $1$。

说明/提示

#### 【数据范围】 对于所有数据,保证 $1\le n\le 20$,$[x^S]F(x)\in[0,998244353)\cap\mathbb Z$,$[x^{\varnothing}]F(x)=1$。 本题有 $20$ 个测试点,第 $i$ 个测试点满足 $n=i$。 #### 【提示】 假设 $F(x)=\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}$$ 根据泰勒展开,有: $$e^{F(x)}=\sum_{n\ge 0}\frac{F^n(x)}{n!}$$ 可以证明本题答案唯一。