atcoder#ARC098B. [ABC098D] Xor Sum 2

[ABC098D] Xor Sum 2

题目描述

長さ N N の整数列 A A があります。

次の条件を満たす整数 l l , r r ( 1  l  r  N 1\ \leq\ l\ \leq\ r\ \leq\ N ) の組の個数を求めてください。

  • $ A_l\ xor\ A_{l+1}\ xor\ ...\ xor\ A_r\ =\ A_l\ +\ A_{l+1}\ +\ ...\ +\ A_r $

xorの説明

整数 c1, c2, ..., cm c_1,\ c_2,\ ...,\ c_m xor xor は以下のように定義されます。

  • xor xor の値を X X とおく。X X 2 2 進数表記したときの 2k 2^k ( 0  k 0\ \leq\ k , k k は整数 ) の位の値は、c1, c2, ...cm c_1,\ c_2,\ ...c_m のうち、2 2 進数表記したときの 2k 2^k の位の値が 1 1 となるものが奇数個ならば 1 1 、偶数個ならば 0 0 となる。

例えば、3 3 5 5 xor xor の値は、3 3 2 2 進数表記が 011 011 5 5 2 2 進数表記が 101 101 のため、2 2 進数表記が 110 110 6 6 となります。

输入格式

入力は以下の形式で標準入力から与えられる。

N N A1 A_1 A2 A_2 ... ... AN A_N

输出格式

条件を満たす整数 l l , r r ( 1  l  r  N 1\ \leq\ l\ \leq\ r\ \leq\ N ) の組の個数を出力せよ。

题目大意

给你一串数 aa

求出满足$a_l+\cdots +a_r=a_l\operatorname{xor}\cdots\operatorname{xor}a_r,l\le r$ 的 (i,j)(i,j) 的数量

$1\le n\le 200000,\forall 1\le i\le n,0\le a_i<2^{20}(1048576)$

4
2 5 4 6
5
9
0 0 0 0 0 0 0 0 0
45
19
885 8 1 128 83 32 256 206 639 16 4 128 689 32 8 64 885 969 1
37

提示

制約

  • 1  N  2 × 105 1\ \leq\ N\ \leq\ 2\ \times\ 10^5
  • 0  Ai 0\ \leq\ A_i
  • 入力はすべて整数である

Sample Explanation 1

明らかに、(l,r)=(1,1),(2,2),(3,3),(4,4) (l,r)=(1,1),(2,2),(3,3),(4,4) は条件を満たします。 また、(l,r)=(1,2) (l,r)=(1,2) の場合、A1 xor A2 = A1 + A2 = 7 A_1\ xor\ A_2\ =\ A_1\ +\ A_2\ =\ 7 となるので、これも条件を満たします。 ほかに条件を満たす組はないので、答えは 5 5 になります。