异或和
异或和
题目描述
小 R 有一个长度为 n 的非负整数序列 a1, a2, ..., an。定义一个区间 [l, r](1 <= l <= r <= n)的权值为 a_l, a_{l+1}, ..., a_r 的二进制按位异或和。
小 X 给了小 R 一个非负整数 k。小 X 希望小 R 选择序列中尽可能多的不相交的区间,使得每个区间的权值均为 k。两个区间 [l1, r1], [l2, r2] 相交当且仅当两个区间同时包含至少一个相同的下标。
你需要帮助小 R 求出他能选出的区间数量的最大值。
输入格式
输入的第一行包含两个非负整数 n, k,分别表示小 R 的序列长度和小 X 给小 R 的非负整数。 输入的第二行包含 n 个非负整数 a1, a2, ..., an,表示小 R 的序列。
输出格式
输出一行一个非负整数,表示小 R 能选出的区间数量的最大值。
样例 #1
输入:
4 2
2 1 0 3
输出:
2
样例 #2
输入:
4 3
2 1 0 3
输出:
2
样例 #3
输入:
4 0
2 1 0 3
输出:
1
提示
对于所有测试数据,保证:1 <= n <= 5 x 10^5,0 <= k < 2^20;对于所有 1 <= i <= n,均有 0 <= a_i < 2^20。
本题为 CSP-J 第二轮真题(2025 年,xor)。
在线判题使用官方样例与补充测试数据,程序输出与答案一致即判对。