Xor Sum
题目描述
有一个长度为 N 的整数序列 A。
请你求出满足以下条件的整数对 (l,r) 的个数(1≤l≤r≤N):
- $A_l \operatorname{xor} A_{l+1} \operatorname{xor} \cdots \operatorname{xor} A_r = A_l + A_{l+1} + \cdots + A_r$
[xor 的定义]
对于整数 c1,c2,…,cm,它们的 xor 定义如下:
- 设 xor 的值为 X。将 X 用二进制表示时,对于每一个 2k 位(0≤k,k 为整数),如果 c1,c2,…,cm 中在该位为 1 的数的个数为奇数,则 X 的该位为 1,否则为 0。
例如,3 和 5 的 xor 值为 6,因为 3 的二进制为 011,5 的二进制为 101,所以 011xor101=110,即 6。
输入格式
输入以如下格式从标准输入读入:
N
A1 A2 ⋯ AN
输出格式
输出满足条件的整数对 (l,r) 的个数。
输入输出样例 #1
输入 #1
4
2 5 4 6
输出 #1
5
输入输出样例 #2
输入 #2
9
0 0 0 0 0 0 0 0 0
输出 #2
45
输入输出样例 #3
输入 #3
19
885 8 1 128 83 32 256 206 639 16 4 128 689 32 8 64 885 969 1
输出 #3
37
说明/提示
限制条件
- 1≤N≤2×105
- 0≤Ai
- 输入均为整数
样例解释 1
显然,(l,r)=(1,1),(2,2),(3,3),(4,4) 都满足条件。此外,当 (l,r)=(1,2) 时,A1xorA2=A1+A2=7,所以也满足条件。没有其他满足条件的组合,因此答案为 5。