#cspj2025T3. 异或和

    ID: 155 传统题 文件IO:xor 1000ms 512MiB 尝试: 0 已通过: 0 难度: 5.12 上传者: 标签>贪心动态规划其他数学位运算数据结构HashingCSP2025

异或和

题目描述

R\text{R} 有一个长度为 nn 的非负整数序列 a1,a2,,ana_1, a_2, \dots, a_n。定义一个区间 [l,r][l, r] (1lrn1 \leq l \leq r \leq n) 的权值为 al,al+1,,ara_l, a_{l+1}, \dots, a_r 的二进制按位异或和,即 alal+1ara_l \oplus a_{l+1} \oplus \dots \oplus a_r,其中 \oplus 表示二进制按位异或。

X\text{X} 给了小 R\text{R} 一个非负整数 kk。小 X\text{X} 希望小 R\text{R} 选择序列中尽可能多的不相交的区间,使得每个区间的权值均为 kk。两个区间 [l1,r1],[l2,r2][l_1, r_1], [l_2, r_2] 相交当且仅当两个区间同时包含至少一个相同的下标,即存在 1in1 \leq i \leq n 使得 l1ir1l_1 \leq i \leq r_1l2ir2l_2 \leq i \leq r_2

例如,对于序列 [2,1,0,3][2, 1, 0, 3],若 k=2k = 2,则小 R\text{R} 可以选择区间 [1,1][1, 1] 和区间 [2,4][2, 4],权值分别为 22103=21 \oplus 0 \oplus 3 = 2;若 k=3k = 3,则小 R\text{R} 可以选择区间 [1,2][1, 2] 和区间 [4,4][4, 4],权值分别为 12=31 \oplus 2 = 333

你需要帮助小 R\text{R} 求出他能选出的区间数量的最大值。

输入格式

从文件 xor.in\textbf{\textit{xor.in}} 中读入数据。

输入的第一行包含两个非负整数 n,kn, k,分别表示小 R\text{R} 的序列长度和小 X\text{X} 给小 R\text{R} 的非负整数。

输入的第二行包含 nn 个非负整数 a1,a2,,ana_1, a_2, \dots, a_n,表示小 R\text{R} 的序列。

输出格式

输出到文件 xor.out\textbf{\textit{xor.out}} 中。

输出一行一个非负整数,表示小 R\text{R} 能选出的区间数量的最大值。

样例

4 2
2 1 0 3
2
4 3
2 1 0 3
2
4 0
2 1 0 3
1

样例 11 解释

小 R 可以选择区间 [1,1][1, 1] 和区间 [2,4][2, 4],异或和分别为 22103=21 \oplus 0 \oplus 3 = 2。可以证明,小 R 能选出的区间数量的最大值为 22

样例 22 解释

小 R 可以选择区间 [1,2][1, 2] 和区间 [4,4][4, 4],异或和分别为 12=31 \oplus 2 = 333。可以证明,小 R 能选出的区间数量的最大值为 22

样例 33 解释

小 R 可以选择区间 [3,3][3, 3],异或和为 00。可以证明,小 R 能选出的区间数量的最大值为 11。注意:小 R 不能同时选择区间 [3,3][3, 3] 和区间 [1,4][1, 4],因为这两个区间同时包含下标 33

样例 44

见选手目录下的 xor/xor4.in\textbf{\textit{xor/xor4.in}}xor/xor4.ans\textbf{\textit{xor/xor4.ans}}

该样例满足测试点 4,54, 5 的约束条件。

样例 55

见选手目录下的 xor/xor5.in\textbf{\textit{xor/xor5.in}}xor/xor5.ans\textbf{\textit{xor/xor5.ans}}

该样例满足测试点 9,109, 10 的约束条件。

样例 66

见选手目录下的 xor/xor6.in\textbf{\textit{xor/xor6.in}}xor/xor6.ans\textbf{\textit{xor/xor6.ans}}

该样例满足测试点 14,1514, 15 的约束条件。

数据范围

对于所有测试数据,保证:

  • 1n5×1051 \leq n \leq 5 \times 10^5, 0k<2200 \leq k < 2^{20};
  • 对于所有 1in1 \leq i \leq n,均有 0ai<2200 \leq a_i < 2^{20}
测试点编号 nn \leq kk 特殊性质
11 22 =0=0 A\text{A}
22 1010 1\leq 1 B\text{B}
33 10210^2 =0=0 A\text{A}
4,54, 5 1\leq 1 B\text{B}
686 \sim 8 255\leq 255 C\text{C}
9,109, 10 10310^3
11,1211, 12 <220< 2^{20}
1313 2×1052 \times 10^5 1\leq 1 B\text{B}
14,1514, 15 255\leq 255 C\text{C}
1616 <220< 2^{20}
1717 5×1055 \times 10^5 255\leq 255 C\text{C}
182018 \sim 20 <220< 2^{20}

特殊性质 A\text{A}: 对于所有 1in1 \leq i \leq n,均有 ai=1a_i = 1

特殊性质 B\text{B}: 对于所有 1in1 \leq i \leq n,均有 0ai10 \leq a_i \leq 1

特殊性质 C\text{C}: 对于所有 1in1 \leq i \leq n,均有 0ai2550 \leq a_i \leq 255

附件:xor.zip