#P13844. 集合幂级数 ln(非素数模数)

集合幂级数 ln(非素数模数)

题目背景

本题为 集合幂级数 ln 的非素数模数版本。

题目描述

给定一个集合幂级数 F(x)F(x),保证 [x]F(x)=1[x^{\varnothing}]F(x)=1。定义 xx 的乘法为子集卷积,可以证明存在一个 G(x)G(x) 满足 eG(x)=F(x)\mathrm e^{G(x)}=F(x),你需要对 S{1,2,,n}S\subseteq\{1,2,\cdots,n\} 求出 [xS]G(x)[x^S]G(x)2642^{64} 取模后的值。

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

输入格式

第一行一个正整数 nn

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

输出格式

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

2
1 2 3 4
0 2 3 18446744073709551614
4
1 8 3 9 2 0 1 8 7 0 0 1 7 3 4 1
0 8 3 18446744073709551601 2 18446744073709551600 18446744073709551611 78 7 18446744073709551560 18446744073709551595 274 18446744073709551609 171 60 18446744073709550139

提示

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

本题有 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!\mathrm e^{F(x)}=\sum_{n\ge 0}\frac{F^n(x)}{n!}

可以证明本题答案唯一。