AT_agc034_f [AGC034F] RNG and XOR

题目描述

すぬけ君得到了一个随机数生成器。这个随机数生成器会生成 $0$ 到 $2^N-1$ 之间的整数。每个整数被生成的概率由整数列 $A_0,A_1,\cdots,A_{2^N-1}$ 给出,整数 $i$($0\leq i\leq 2^N-1$)被生成的概率为 $A_i/S$,其中 $S=\sum_{i=0}^{2^N-1}A_i$。此外,每次生成随机数都是独立进行的。 すぬけ君有一个整数 $X$。现在,$X=0$。すぬけ君可以进行任意多次如下操作: - 用随机数生成器生成一个整数 $v$,然后将 $X$ 替换为 $X\oplus v$。其中,$\oplus$ 表示按位异或运算。 请对于每个整数 $i$($0\leq i\leq 2^N-1$),求出将 $X$ 变为 $i$ 所需操作次数的期望值。期望值需要对 $998244353$ 取模输出。更准确地说,若期望值为既约分数 $P/Q$,则输出满足 $R\times Q\equiv P\pmod{998244353},\ 0\leq R

输入格式

输入以如下格式从标准输入读入。 > $N$ $A_0$ $A_1$ $\cdots$ $A_{2^N-1}$

输出格式

输出 $2^N$ 行。第 $i+1$ 行($0\leq i\leq 2^N-1$)输出将 $X$ 变为 $i$ 所需操作次数的期望值对 $998244353$ 取模后的结果。

说明/提示

## 限制条件 - $1\leq N\leq 18$ - $1\leq A_i\leq 1000$ - 输入的所有值均为整数。 ## 样例解释 1 操作 $0$ 次时 $X=0$,所以将 $X$ 变为 $0$ 所需操作次数的期望值为 $0$。另外,无论从哪个状态操作,操作后 $X$ 的值都以 $1/4$ 的概率变为 $0,1,2,3$。因此,将 $X$ 变为 $1,2,3$ 所需操作次数的期望值均为 $4$。 ## 样例解释 2 将 $X$ 变为 $0,1,2,3$ 所需操作次数的期望值分别为 $0,7/2,4,7/2$。 由 ChatGPT 4.1 翻译