381. 【25CSPJ普及组】异或和 中等
时间限制: 1.0s · 内存限制: 512MB · 通过: 0/0
小 R 有一个长度为 $n$ 的非负整数序列 $a_1$, $a_2$, . . . , $a_n$。定义一个区间 $[l, r] (1 ≤ l ≤r ≤ n)$ 的权值为 $a_l$, $a_{l+1}$, . . . , $a_r$ 的二进制按位异或和,即 $a_l ⊕ a_{l+1} ⊕ · · · ⊕ a_r$,其中 ⊕ 表示二进制按位异或。
小 X 给了小 R 一个非负整数 $k$。小 X 希望小 R 选择序列中尽可能多的不相交的区间,使得每个区间的权值均为 $k$。两个区间 $[l_1, r_1]$, $[l_2, r_2]$ 相交当且仅当两个区间同时包含至少一个相同的下标,即存在 $1 ≤ i ≤ n$ 使得 $l_1 ≤ i ≤ r_1$ 且 $l_2 ≤ i ≤ r_2$。
例如,对于序列 [$2, 1, 0, 3$],若 $k = 2$,则小 R 可以选择区间 [$1, 1$] 和区间 [$2, 4$],权值分别为 $2$ 和 $1 ⊕ 0 ⊕ 3 = 2$;若 $k = 3$,则小 R 可以选择区间 [$1, 2$] 和区间 [$4, 4$],权值分别为 $1 ⊕ 2 = 3$ 和 $3$。
你需要帮助小 R 求出他能选出的区间数量的最大值。
提交代码
C++
请先登录
登录后即可提交代码