AT_abc367_g [ABC367G] Sum of (XOR^K or 0)
Description
[problemUrl]: https://atcoder.jp/contests/abc367/tasks/abc367_g
正整数 $ N,M,K $ および非負整数列 $ A=(A_1,A_2,\ldots,A_N) $ が与えられます。
非空な非負整数列 $ B=(B_1,B_2,\ldots,B_{|B|}) $ に対して、**スコア**を以下で定めます。
- $ B $ の長さが $ M $ の倍数のとき $ (B_1\ \oplus\ B_2\ \oplus\ \dots\ \oplus\ B_{|B|})^K $
- そうでないとき $ 0 $
ただし、$ \oplus $ はビットごとの排他的論理和を表します。
$ A $ の非空な部分列 $ 2^N-1 $ 個それぞれに対するスコアの総和を $ 998244353 $ で割った余りを求めてください。
ビットごとの排他的論理和とは 非負整数 $ A,\ B $ のビットごとの排他的論理和 $ A\ \oplus\ B $ は、以下のように定義されます。 - $ A\ \oplus\ B $ を二進表記した際の $ 2^k $ ($ k\ \geq\ 0 $) の位の数は、$ A,\ B $ を二進表記した際の $ 2^k $ の位の数のうち一方のみが $ 1 $ であれば $ 1 $、そうでなければ $ 0 $ である。
例えば、$ 3\ \oplus\ 5\ =\ 6 $ となります (二進表記すると: $ 011\ \oplus\ 101\ =\ 110 $)。
一般に $ k $ 個の整数 $ p_1,\ \dots,\ p_k $ の排他的論理和は $ (\cdots\ ((p_1\ \oplus\ p_2)\ \oplus\ p_3)\ \oplus\ \cdots\ \oplus\ p_k) $ と定義され、これは $ p_1,\ \dots,\ p_k $ の順番によらないことが証明できます。
Input Format
N/A
Output Format
N/A
Explanation/Hint
### 制約
- $ 1\leq\ N,K\leq\ 2\times\ 10^5 $
- $ 1\leq\ M\leq\ 100 $
- $ 0\leq\ A_i\lt\ 2^{20} $
- 入力は全て整数
### Sample Explanation 1
$ A $ の非空な部分列 $ 2^3-1=7 $ 個それぞれのスコアは以下のようになります。 - $ (1) $:$ 0 $ - $ (2) $:$ 0 $ - $ (3) $:$ 0 $ - $ (1,2) $:$ (1\oplus2)^2=9 $ - $ (1,3) $:$ (1\oplus3)^2=4 $ - $ (2,3) $:$ (2\oplus3)^2=1 $ - $ (1,2,3) $:$ 0 $ よって求める総和は $ 0+0+0+9+4+1+0=14 $ です。