【提高】异或序列
[提高] 异或序列
有一个长度为 的序列 ,序列中的每个值在 之间。
请你求出这个序列有多少对连续子序列 ,满足 在 之前,且 中所有元素的异或和为 。
简单来说,你需要求出有多少个四元组 ,满足 ,且
$$(\bigoplus^{r_1}_{i=l_1}a_i)\bigoplus(\bigoplus^{r_2}_{i=l_2}a_i)=m$$表示异或,即:
输入格式
第一行两个整数 ,表示数组长度,异或和。
第二行 个整数,表示数组 。
输出格式
一行一个整数,表示答案。
保证答案不超过 long long 表示范围。
4 2
0 1 2 3
3
6 2
0 1 2 3 4 5
8
8 2
0 1 2 3 4 5 6 7
22
提示
【样例 1 解释】
- 以下是 种方案
- $A = \lbrace0\rbrace, B = \lbrace2\rbrace, 0\oplus2=2$
- $A = \lbrace1\rbrace, B = \lbrace3\rbrace, 1\oplus3=2$
- $A = \lbrace0, 1\rbrace, B = \lbrace3\rbrace, 0\oplus1\oplus3=2$
【数据范围】
- 对于 的数据,$3 \leq n \leq 10^5, 0 \leq a_i \leq 1024, 0 \leq m \leq 1024$
| 测试点编号 | 特殊性质 |
|---|---|
| 保证 | |
| 保证 | |
| 保证 | |
| 保证 | |
| 无 |