题目描述
skip2004 和 ignore2004 是好朋友,他们经常在一起玩游戏。
一天,他们在玩一个合作型游戏,这个游戏的规则是这样的:
在他们面前,有一个 n 位二进制数 x,初始时它等于 (bn−1bn−2…b1b0)2,然后他们可以进行若干轮操作,每轮操作规则如下:
- 首先,skip2004 要选择一个 n 位二进制数 $\boldsymbol y = \left( c_{n-1} c_{n-2} \ldots c_1 c_0 \right)_2$。
- 接着,ignore2004 要选择一个为 & 或 ∣ 的运算符,记作 ⊛。
- 然后,令 $\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ˉ=1−ci 表示按位取反。
- 最后,令 $\boldsymbol x \gets \boldsymbol x \circledast \boldsymbol z$。
(ps: & 表示按位与运算符,∣ 表示按位或运算符)
游戏的目标是,再经过若干 (≥1) 轮操作后,使 x 再次回到 (bn−1bn−2…b1b0)2 (即除去初始状态后首次达到 (bn−1bn−2…b1b0)2)。
为了增强游戏的趣味性,skip2004 和 ignore2004 决定随机决定 y 和 ⊛。具体地:
- 在 skip2004 随机时,对于 ∀i∈[0,n−1],ci 均有独立的 pi 的概率为 1,1−pi 的概率为 0。
- 在 ignore2004 随机时,⊛ 有独立的 q 的概率为 &,1−q 的概率为 ∣。
他们想知道,按照这种随机策略,游戏经过轮数 (即 x 从 (bn−1bn−2…b1b0)2 再次回到 (bn−1bn−2…b1b0)2) 的期望。
由于他们不知道最初的二进制数 (bn−1bn−2…b1b0)2,因此你需要对所有 2n 种可能的 (bn−1bn−2…b1b0)2 都回答这个问题。
输入格式
第一行包含两个正整数 n,q∗,分别表示二进制数的位数和 ignore2004 随机的参数。具体地,有 q=998244354q∗。
第二行包含 n 个正整数 p0∗,p1∗,…,pn−1∗ 描述 skip2004 随机的参数。具体地,有 pi=998244354pi∗。
输出格式
记 (bn−1bn−2…b1b0)2 的答案 (期望) 为 Ej (其中 j 为 (bn−1bn−2…b1b0)2 的十进制表示),用 ej 表示 Ej 在模 998244353 意义下的值。
则输出一行一个整数,表示
$$\bigoplus_{j=0}^{2^n-1} \left( 2004^j \cdot e_j \bmod 998244353 \right)
$$
其中 ⊕ 表示按位异或运算符。
(ps: 对于一个分母不为 998244353 的倍数的 (最简) 有理数 qp,它在模 998244353 意义下的值被定义为满足 q⋅r≡p(mod998244353) 且 r∈[0,998244352] 的唯一整数 r)
1 499122177
499122177
4010
4 230167959
49 38 15 98
675282672
数据范围与提示
对于所有的测试点,均满足 1≤n≤20;2≤pi,q≤998244352,且数据以某种方式随机,以确保你在计算过程中不必考虑计算 0 的逆元的情况。
具体的子任务的数据规模见下表:
子任务 |
附加限制 |
分值 |
1 |
n≤5 |
22 |
2 |
pi=q=499122177 |
22 |
3 |
n≤8 |
22 |
4 |
无特殊限制 |
34 |