A83466.和和异或和

普及/提高-

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

给定一个长度为 NN 的正整数数组 A1,A2,,ANA_1,A_2,\dots,A_N。我们称区间 [l,r][l,r]1lrN1\le l\le r\le N)是“合法”的,当且仅当

Al+Al+1++Ar=AlAl+1ArA_l +A_{l+1}+\cdots +A_r = A_l \oplus A_{l+1} \oplus \cdots \oplus A_r

其中 \oplus 表示按位异或。

请你统计合法区间的个数。

输入格式

第一行一个整数 NN

第二行包含 NN 个整数 A1,A2,,ANA_1,A_2,\dots,A_N

输出格式

输出一个整数,表示满足条件的区间 [l,r][l,r] 的数量。

输入输出样例

  • 输入#1

    3
    1 2 3
    

    输出#1

    4

说明/提示

1N2×1051 \le N \le 2\times 10^5

1Ai1091 \le A_i \le 10^9

对于样例:
满足条件的区间为:[1,1][1,1][2,2][2,2][3,3][3,3][1,2][1,2]
例如 [1,2][1,2]1+2=31+2=3,且 12=31\oplus2=3;而 [2,3][2,3]2+3=52+3=523=12\oplus3=1 不相等,因此不计入。

首页