编程题
### 问题描述 晓宇给了你一个长度为 $n$ 的正整数序列 $A$ 。求有多少对 $(l,r)(l \le r)$ 使得序列 $A_l, A_{l+1}, ...A_r$ 的异或和为 $0$ 。 如果仅仅是这样那这道题目就太简单了。所以在检查 $(l,r)$ 是否满足条件时,允许你对 $A$ 中下标从 $l$ 到 $r$ 的每个数字进行任意次修改,每次修改为交换数字的相邻两个二进制位。 求有多少对 $(l,r)(l \le r)$ 使得序列 $A_l, A_{l+1}, ...A_r$ 中的每一个数字经过任意次修改后异或和为 $0$ 。 ### 输入格式 第一行包含一个整数 $n$ 。 接下来的一行每行包含 $n$ 个整数,表示数组 $A$ 。 ### 输出格式 输出一个整数,表示满足条件的数对个数。 ### 样例输入 ``` 3 1 2 3 ``` ### 样例输出 ``` 2 ``` ### 评测数据范围 对于 $30$% 的数据,保证 $n \le 10$ 。 对于 $60$% 的数据,保证 $n \le 1000$ 。 对于另外 $20$% 的数据,保证 $0 \le A_i \lt 2^5$。 对于 $100$% 的数据,保证 $1 \le n \le 100000, 0 \le A_i \lt 2^{30}$ 。
查看答案
赣ICP备20007335号-2