#P0120. [2021 AHOI小学组] 异或和(xorsum)
[2021 AHOI小学组] 异或和(xorsum)
题目描述
小可可在五年级暑假开始学习编程,编程语言中有一种“按位异或(xor)”的运算引起了他的莫大兴趣。于是,他思考这样的一个问题:给一个长度为 的整数序列 ,如何计算出满足下列两个条件的整数对 的数量。
- 1.;
- 2.$A_l \oplus A_{l+1} \oplus \dots \oplus A_r = A_l + A_{l+1} + \dots + A_r$。
这里的 就是按位异或(C 或 C++语言中“按位异或”运算符为 ^),求 的原理是:将 和 转换为二进制,如果 、 的二进制表示中对应位置不相同,则异或结果的二进制表示中对应位置为 1,如果 、 的二进制表示中对应位置相同,则异或结果的二进制表示中对应位置为 0。例如:计算 ,二进制表示 是 ,二进制表示 是 , 结果的二进制表示是 ,即为 。具体如下式(C++中异或为^)

小可可虽然提出了问题,但他自己不会解决,只好又要麻烦你解决啦。
输入格式
输入有两行:
第一行一个正整数 ,表示整数序列 的元素个数。
第二行有 个整数,第 个整数 表示整数序列 的第 个元素的值。
输出格式
输出一行,包括一个正整数,表示满足条件的整数对 的数量。
样例
输入#1
4
2 5 4 6
输出#1
5
解释#1
【样例 1 解释】
、、、 显然满足条件,还有 也满足条件,因为
,而
。
所以满足条件的整数对 的数量为 5。
输入#2
19
885 8 1 128 83 32 256 206 639 16 4 128 689 32 8 64 885 969 1
输出#2
37
数据范围
对于 的数据满足:。
另有 的数据满足:。
对于 的数据满足:,。
相关
在下列比赛中: