编程题
### 问题描述 小然在一次冒险中,发现了一种神秘的符文。这种符文由 $N$ 个数字组成,每个数字都是 0 或 1。 他通过以下步骤,从一个数组 $A$ 生成了这种符文: 1. 对于数组 $A$ 中的每两个相邻的元素,计算它们的和的奇偶性。 2. 将步骤1得到的奇偶性作为一个数字(0 表示偶数,1 表示奇数),按照原始顺序连接在一起,形成一个新的数组 $B$。也就是说,$B_i = (A_i + A_{i+1}) \bmod 2$,对于 $1 \leq i \leq N-1$,并且 $B_N = (A_N + A_1) \bmod 2$。 然而,小然在一次意外中,丢失了数组 $A$,只剩下了数组 $B$。现在,他想知道,是否存在一个数组 $A$,可以通过上述步骤生成数组 $B$? ### 输入格式 输入的第一行包含一个整数 $T$,表示测试用例的数量。 每个测试用例包含两行。第一行包含一个整数 $N$,表示数组 $B$ 的长度。第二行包含 $N$ 个空格分隔的整数 $B_1, B_2, ..., B_N$,表示数组 $B$。 ### 输出格式 对于每个测试用例,如果存在一个数组 $A$ 能生成数组 $B$,输出 "YES",否则输出 "NO"。 ### 样例输入 ```text 4 2 0 0 2 1 0 4 1 0 1 0 3 1 0 0 ``` ### 样例输出 ```text YES NO YES NO ``` ### 说明 在第一个测试用例中,数组 $A = [1, 1]$ 可以生成数组 $B = [0, 0]$。 ### 评测数据范围 $1 \leq T \leq 1000$。 $2 \leq N \leq 10^5$,$B_i \in \\{0,1\\}$。 保证每个测试用例 $N$ 的总和不超过 $3 \times 10^5$。
查看答案
赣ICP备20007335号-2