luogu#P12230. 集合幂级数 exp

    ID: 36522 远端评测题 2500ms 512MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>快速沃尔什变换 FWT快速莫比乌斯变换 FMT集合幂级数,子集卷积

集合幂级数 exp

题目描述

给定一个集合幂级数 F(x)F(x),保证 [x]F(x)=0[x^{\varnothing}]F(x)=0。定义 xx 的乘法为子集卷积,你需要对所有 S{1,2,,n}S\subseteq\{1,2,\cdots,n\} 求出 [xS]eF(x)[x^S]e^{F(x)}998244353998244353 取模后的值。

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

输入格式

第一行一个正整数 nn

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

输出格式

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

2
0 1 2 3
1 1 2 5
4
0 11 83 73 34 53 72 57 81 92 10 31 44 33 93 10
1 11 83 986 34 427 2894 38772 81 983 6733 87643 2798 38232 238499 3459260

提示

【数据范围】

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

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

【提示】

假设 F(x)=SfSxSF(x)=\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} $$

根据泰勒展开,有:

eF(x)=n0Fn(x)n!e^{F(x)}=\sum_{n\ge 0}\frac{F^n(x)}{n!}