题库/GPGEN0005

#GPGEN0005. 异或为 K 的不相交区间

    传统题 难度: 普及+ 标签>前缀异或贪心集合
时间限制1000 ms
内存限制256 MiB
通过率—0 / 0 次提交
题目描述 查看题解 开始编程Alt+E

GPGEN0005 · 异或为 K 的不相交区间

退出在线编程模式
普及+ 读懂题意,让每一次思考成为成长。
时间限制1000 ms
内存限制256 MiB
通过率—0 / 0 次提交

题目描述

小 R 有一个长度为 NN 的非负整数序列 a1,a2,…,aNa_1,a_2,\ldots,a_N。

对于一个非空连续区间 [l,r][l,r],定义它的权值为区间内所有数的异或和:

al⊕al+1⊕⋯⊕ara_l\oplus a_{l+1}\oplus\cdots\oplus a_r

其中,⊕\oplus 表示按位异或运算。

给定目标值 KK,请从序列中选出尽可能多的区间,使每个区间的权值都等于 KK,并且这些区间两两不相交。

未被选入任何区间的元素可以忽略,不要求所有元素都被选中。若按从左到右的顺序排列选出的区间,则下一个区间的左端点必须大于前一个区间的右端点。

请输出最多能选出的区间数量。如果不存在满足要求的区间,输出 00。

输入格式

第一行包含两个整数 NN 和 KK。

第二行包含 NN 个非负整数 a1,a2,…,aNa_1,a_2,\ldots,a_N。

输出格式

输出一个整数,表示最多能选出的区间数量。

样例

6 2
1 2 3 2 1 2
3

样例解释

可以选出 [2,2][2,2]、[4,4][4,4]、[6,6][6,6] 这三个区间。每个区间中都只有一个数 22,因此异或和均为 22,且三个区间互不重叠。

数据范围

对于所有测试数据:

  • 1≤N≤1051\le N\le 10^5;
  • 0≤K≤1090\le K\le 10^9;
  • 0≤ai≤1090\le a_i\le 10^9。

题目信息

#608
—

暂无提交记录

练习难度 普及+
时间限制
1000ms
内存限制
256MiB

题目标签

暂无标签
上传者