loj#P6778. 「2021 营员交流」忽略 2004

「2021 营员交流」忽略 2004

题目描述

skip2004 和 ignore2004 是好朋友,他们经常在一起玩游戏。

一天,他们在玩一个合作型游戏,这个游戏的规则是这样的:

在他们面前,有一个 nn 位二进制数 x\boldsymbol x,初始时它等于 (bn1bn2b1b0)2\left( b_{n-1} b_{n-2} \ldots b_1 b_0 \right)_2,然后他们可以进行若干轮操作,每轮操作规则如下:

  • 首先,skip2004 要选择一个 nn 位二进制数 $\boldsymbol y = \left( c_{n-1} c_{n-2} \ldots c_1 c_0 \right)_2$。
  • 接着,ignore2004 要选择一个为 &\mathbin \&\mid 的运算符,记作 \circledast
  • 然后,令 $\boldsymbol z = \begin{cases} \left( c_{n-1} c_{n-2} \ldots c_1 c_0 \right)_2 & \circledast = \mathbin \& \\[0.4em] \left( \overline {c_{n-1} c_{n-2} \ldots c_1 c_0} \right)_2 & \circledast = {|} \end{cases}$,其中 ciˉ=1ci\bar {c_i} = 1 - c_i 表示按位取反
  • 最后,令 $\boldsymbol x \gets \boldsymbol x \circledast \boldsymbol z$。

(ps: &\mathbin \& 表示按位与运算符,\mid 表示按位或运算符)

游戏的目标是,再经过若干 (1\geq 1) 轮操作后,使 x\boldsymbol x 再次回到 (bn1bn2b1b0)2\left( b_{n-1} b_{n-2} \ldots b_1 b_0 \right)_2 (即除去初始状态后首次达到 (bn1bn2b1b0)2\left( b_{n-1} b_{n-2} \ldots b_1 b_0 \right)_2)

为了增强游戏的趣味性,skip2004 和 ignore2004 决定随机决定 y\boldsymbol y\circledast。具体地:

  • 在 skip2004 随机时,对于 i[0,n1]\forall i \in \left[ 0, n - 1 \right]cic_i 均有独立的 pip_i 的概率为 111pi1 - p_i 的概率为 00
  • 在 ignore2004 随机时,\circledast 有独立的 qq 的概率为 &\mathbin \&1q1 - q 的概率为 \mid

他们想知道,按照这种随机策略,游戏经过轮数 (即 x\boldsymbol x(bn1bn2b1b0)2\left( b_{n-1} b_{n-2} \ldots b_1 b_0 \right)_2 再次回到 (bn1bn2b1b0)2\left( b_{n-1} b_{n-2} \ldots b_1 b_0 \right)_2) 的期望

由于他们不知道最初的二进制数 (bn1bn2b1b0)2\left( b_{n-1} b_{n-2} \ldots b_1 b_0 \right)_2,因此你需要对所有 2n2^n 种可能的 (bn1bn2b1b0)2\left( b_{n-1} b_{n-2} \ldots b_1 b_0 \right)_2 都回答这个问题。

输入格式

第一行包含两个正整数 n,qn, q^\ast,分别表示二进制数的位数和 ignore2004 随机的参数。具体地,有 q=q998244354q = \dfrac {q^\ast} {998244354}

第二行包含 nn 个正整数 p0,p1,,pn1p_0^\ast, p_1^\ast, \ldots, p_{n-1}^\ast 描述 skip2004 随机的参数。具体地,有 pi=pi998244354p_i = \dfrac {p_i^\ast} {998244354}

输出格式

(bn1bn2b1b0)2\left( b_{n-1} b_{n-2} \ldots b_1 b_0 \right)_2 的答案 (期望) 为 EjE_j (其中 jj(bn1bn2b1b0)2\left( b_{n-1} b_{n-2} \ldots b_1 b_0 \right)_2 的十进制表示),用 eje_j 表示 EjE_j 在模 998244353998244353 意义下的值。

则输出一行一个整数,表示

$$\bigoplus_{j=0}^{2^n-1} \left( 2004^j \cdot e_j \bmod 998244353 \right) $$

其中 \oplus 表示按位异或运算符。

(ps: 对于一个分母不为 998244353998244353 的倍数的 (最简) 有理数 pq\dfrac pq,它在模 998244353998244353 意义下的值被定义为满足 qrp(mod998244353)q \cdot r \equiv p \pmod {998244353}r[0,998244352]r \in \left[ 0, 998244352 \right] 的唯一整数 rr)

1 499122177
499122177

4010

4 230167959
49 38 15 98

675282672

数据范围与提示

对于所有的测试点,均满足 1n20;2pi,q9982443521 \leq n \leq 20; 2 \leq p_i, q \leq 998244352且数据以某种方式随机,以确保你在计算过程中不必考虑计算 00 的逆元的情况

具体的子任务的数据规模见下表:

子任务 附加限制 分值
1 n5n \leq 5 2222
2 pi=q=499122177p_i = q = 499122177 2222
3 n8n \leq 8 2222
4 无特殊限制 3434