异或和

异或和

题目描述

小 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)。

在线判题使用官方样例与补充测试数据,程序输出与答案一致即判对。