「Cfz Round 2」Binary

题目描述

给定 $n + 1$ 个整数 $a_0\dots a_n$。 对于整数 $u$,设它在二进制下为 $1$ 的位分别为 $k_1, k_2\dots k_m$,那么它的权值 $f(u) = a_{k_1} \oplus a_{k_2} \oplus \dots \oplus a_{k_m}$。此处的二进制位的编号从右到左,依次为 $0,1,2\dots$。其中 $\oplus$ 表示 [按位异或](https://baike.baidu.com/item/%E5%BC%82%E6%88%96/10993677?fromModule=search-result_lemma-recommend) 符号。 你想要知道有多少个 $0 \leq u \leq 2^n - 1$ 使得 $f(u) = f(u + 1)$。为了方便,请你用 **二进制形式** 输出答案(不取模)。 请注意:输出不能包含前导 $0$,除非答案为 $0$。

输入输出格式

输入格式


**本题有多组测试数据。** 第一行输入一个整数 $T$,表示测试数据组数。 接下来依次输入每组测试数据。对于每组测试数据: - 第一行输入一个正整数 $n$。 - 第二行输入 $n + 1$ 个整数 $a_0 \dots a_n$。

输出格式


对于每组数据,输出一行一个二进制整数,表示答案。 再次提示:输出不能包含前导 $0$,除非答案为 $0$。

输入输出样例

输入样例 #1

5
2
0 1 2
3
1 3 3 1
4
2 2 5 4 2
5
7 0 3 4 0 1
6
5 2 1 8 6 0 9

输出样例 #1

10
1
100
11
0

说明

#### 「样例解释 #1」 对于第 $1$ 组数据, - $(0)_{10} = (0)_{2}$,所以 $f(0) = 0$; - $(1)_{10} = (1)_{2}$,所以 $f(1) = a_0 = 0$; - $(2)_{10} = (10)_{2}$,所以 $f(2) = a_1 = 1$; - $(3)_{10} = (11)_{2}$,所以 $f(3) = a_0 \oplus a_1 = 0 \oplus 1 = 1$; - $(4)_{10} = (100)_{2}$,所以 $f(4) = a_2 = 2$。 这其中有 $f(0) = f(1)$,$f(2) = f(3)$,所以输出 $(2)_{10} = (10)_{2}$。 #### 「数据范围」 设 $\sum n$ 表示单个测试点中 $n$ 的和。 对于所有数据,$1 \leq T \leq 10^3$,$1 \leq n \leq 2\times 10^5$,$\sum n \leq 6\times 10^5$,$0 \leq a_i \leq 2^{30} - 1$。 **只有你通过本题的所有测试点,你才能获得本题的分数。**