AT_diverta2019_e XOR Partitioning

题目描述

定义长度为 $n$ 的数列 $a$ 的*美丽值*为 $a_1\ \oplus\ a_2\ \oplus\ \cdots\ \oplus\ a_{n}$,其中 $\oplus$ 表示按位异或运算。 给定一个长度为 $N$ 的数列 $A$。すぬけ君想要在 $A$ 中插入 $0$ 个或多个分隔符,将其分割成若干个非空的连续子序列。 插入分隔符的方法共有 $2^{N-1}$ 种。在这些方法中,要求所有被分割出来的子序列的美丽值都相等。请计算满足条件的分割方法数,并对 $10^9+7$ 取模。

输入格式

输入通过标准输入给出,格式如下: > $N$ $A_1$ $A_2$ $\ldots$ $A_N$

输出格式

请输出答案。

说明/提示

## 限制条件 - 所有输入均为整数。 - $1 \leq N \leq 5 \times 10^5$ - $0 \leq A_i < 2^{20}$ ## 样例解释 1 满足条件的分割方法有以下 $3$ 种。仅当分割为 $(1),(2),(3)$ 时,所有子序列的美丽值不相等。 - $(1,2,3)$ - $(1),(2,3)$ - $(1,2),(3)$ ## 样例解释 3 请计算满足条件的方法数,并对 $10^9+7$ 取模。 由 ChatGPT 4.1 翻译