#5187. Sum of (XOR^K or 0)

0

Sum of (XOR^K or 0)

Sum of (XOR^K or 0)

题目描述

给出正整数 NN、MM、KK 以及一列非负整数:A=(A1,A2,…,AN)A=(A_1,A_2,\ldots,A_N)。 对于一个非空的非负整数序列 B=(B1,B2,…,B∣B∣)B=(B_1,B_2,\ldots,B_{|B|}),我们定义它的 得分 如下。

如果 BB 的长度是 MM 的倍数:(B1⊕B2⊕⋯⊕B∣B∣)K(B_1 \oplus B_2 \oplus \dots \oplus B_{|B|})^K 否则:00

这里,⊕\oplus 表示按位异或。 求 AA 的 2N−12^N-1 个非空子序列的得分之和,对 998244353998244353 取模。

什么是按位异或? 非负整数 $A$ 和 $B$ 的按位异或,记作 $A \oplus B$,定义如下:在 $A \oplus B$ 的二进制表示中,第 $2^k$ 位($k \geq 0$)的数字为 $1$ 当且仅当 $A$ 和 $B$ 在该位的二进制表示中恰好有一个为 $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$ 的顺序无关。

输入格式

输入按照标准输入给出,格式如下: NN MM KK A1A_1 A2A_2 …\ldots ANA_N

输出格式

输出答案。

3 2 2
1 2 3
14
10 5 3
100 100 100 100 100 100 100 100 100 100
252000000
16 4 100
7053 3876 3178 8422 7802 5998 2334 6757 6889 6637 7365 9495 7848 9026 7312 6558
432440016

提示

1≤N,K≤2×1051 \leq N,K \leq 2 \times 10^5 1≤M≤1001 \leq M \leq 100 0 \leq A_i < 2^{20} 所有输入值均为整数。以下是 23−1=72^3-1=7 个非空子序列的得分。

(1)(1):00 (2)(2):00 (3)(3):00 (1,2)(1,2):(1⊕2)2=9(1\oplus2)^2=9 (1,3)(1,3):(1⊕3)2=4(1\oplus3)^2=4 (2,3)(2,3):(2⊕3)2=1(2\oplus3)^2=1 (1,2,3)(1,2,3):00

因此,所求和为 0+0+0+9+4+1+0=140+0+0+9+4+1+0=14.

标签: AtCoder|abc367G

来源

AtCoder|abc367G