CF1438E Yurii Can Do Everything

题目描述

Yurii 相信自己无所不能。那么,他能解决这个问题吗? 他有一个由 $n$ 个正整数组成的数组 $a$。我们称子数组 $a[l...r]$ 是“好”的,当且仅当同时满足以下条件: - $l+1 \leq r-1$,即子数组的长度至少为 $3$; - $a_l \oplus a_r = a_{l+1} + a_{l+2} + \ldots + a_{r-2} + a_{r-1}$,其中 $\oplus$ 表示[按位异或运算](https://en.wikipedia.org/wiki/Bitwise_operation#XOR)。 换句话说,如果子数组两端元素的按位异或等于中间所有元素的和,则该子数组是“好”的。 Yurii 想知道“好”子数组的总数是多少。请你计算并输出。 数组 $c$ 是数组 $d$ 的子数组,如果 $c$ 可以通过从 $d$ 的开头和结尾各删除若干(可能为零或全部)元素得到。

输入格式

第一行包含一个整数 $n$($3 \leq n \leq 2 \cdot 10^5$),表示数组 $a$ 的长度。 第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \leq a_i < 2^{30}$),表示数组 $a$ 的元素。

输出格式

输出一个整数,表示“好”子数组的数量。

说明/提示

在示例中共有 $6$ 个“好”子数组: - $[3,1,2]$(出现两次),因为 $3 \oplus 2 = 1$; - $[1,2,3]$(出现两次),因为 $1 \oplus 3 = 2$; - $[2,3,1]$,因为 $2 \oplus 1 = 3$; - $[3,1,2,3,1,2,3,15]$,因为 $3 \oplus 15 = 1+2+3+1+2+3$。 由 ChatGPT 4.1 翻译