问题 C: [CSP-J 2025] 异或和
内存限制:512 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:8
解决:1
题目描述
小 R 有一个长度为 的非负整数序列 。定义一个区间 () 的权值为 的二进制按位异或和,即 ,其中 表示二进制按位异或。
小 X 给了小 R 一个非负整数 。小 X 希望小 R 选择序列中尽可能多的不相交的区间,使得每个区间的权值均为 。两个区间 相交当且仅当两个区间同时包含至少一个相同的下标,即存在 使得 且 。
例如,对于序列 ,若 ,则小 R 可以选择区间 和区间 ,权值分别为 和 ;若 ,则小 R 可以选择区间 和区间 ,权值分别为 和 。
你需要帮助小 R 求出他能选出的区间数量的最大值。
说明/提示
【样例 1 解释】
小 R 可以选择区间 和区间 ,异或和分别为 和 。可以证明,小 R 能选出的区间数量的最大值为 。
【样例 2 解释】
小 R 可以选择区间 和区间 ,异或和分别为 和 。可以证明,小 R 能选出的区间数量的最大值为 。
【样例 3 解释】
小 R 可以选择区间 ,异或和为 。可以证明,小 R 能选出的区间数量的最大值为 。注意:小 R 不能同时选择区间 和区间 ,因为这两个区间同时包含下标 。
【数据范围】
对于所有测试数据,保证:
- , ;
- 对于所有 ,均有 。
特殊性质 A: 对于所有 ,均有 。
特殊性质 B: 对于所有 ,均有 。
特殊性质 C: 对于所有 ,均有 。
输入
输入的第一行包含两个非负整数 ,分别表示小 R 的序列长度和小 X 给小 R 的非负整数。
输入的第二行包含 个非负整数 ,表示小 R 的序列。
输出
输出一行一个非负整数,表示小 R 能选出的区间数量的最大值。
样例输入 复制
样例输入1:
4 2
2 1 0 3
样例输出1:
2
样例输入2:
4 3
2 1 0 3
样例输出2:
2
样例输入3:
4 0
2 1 0 3
样例输出3:
1