问题 3225 --异或和(xor)

3225: 异或和(xor)

时间限制: 1 Sec  内存限制: 256 MB
提交: 0  解决: 0
[提交][状态][讨论版][命题人:]

题目描述

小 R 有一个长度为 n 的非负整数序列 a1,a2,,an。定义一个区间 [l,r] (1lrn) 的权值为 al,al+1,,ar 的二进制按位异或和,即 alal+1ar,其中  表示二进制按位异或。

小 X 给了小 R 一个非负整数 k。小 X 希望小 R 选择序列中尽可能多的不相交的区间,使得每个区间的权值均为 k。两个区间 [l1,r1],[l2,r2] 相交当且仅当两个区间同时包含至少一个相同的下标,即存在 1in 使得 l1ir1 且 l2ir2

例如,对于序列 [2,1,0,3],若 k=2,则小 R 可以选择区间 [1,1] 和区间 [2,4],权值分别为 2 和 103=2;若 k=3,则小 R 可以选择区间 [1,2] 和区间 [4,4],权值分别为 12=3 和 3

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

输入

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

输入的第二行包含 n 个非负整数 a1,a2,,an,表示小 R 的序列。

输出

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

样例输入

样例1
4 2
2 1 0 3
样例2
4 3
2 1 0 3
样例3
4 0
2 1 0 3

样例输出

样例1
2
样例2
2
样例3
1

提示


说明/提示





【样例 1 解释】



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



【样例 2 解释】



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



【样例 3 解释】



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






来源

[提交][状态]