CF1362B Johnny and His Hobbies

题目描述

Johnny 有两个看似无害的爱好:进行按位运算和偷偷溜进他爸爸的办公室。像大多数小孩一样,Johnny 并不知道把这两件事结合起来会带来很大的麻烦。 他爸爸的桌子上有一个包含非常重要数字的集合 $S$。Johnny 一听说这件事,就决定选择一个正整数 $k$,并把集合 $S$ 中的每个元素 $s$ 替换为 $s \oplus k$($\oplus$ 表示[异或](https://en.wikipedia.org/wiki/Exclusive_or#Computer_science)运算)。 请帮他选择一个 $k$,使得 Johnny 捣乱后,他爸爸看不出任何变化(即 Johnny 得到的集合和原来的集合完全相同)。可能不存在这样的 $k$,也可能有多个。若有多个,输出最小的那个。注意集合中元素的顺序无关紧要,例如 $\{1, 2, 3\}$ 和 $\{2, 1, 3\}$ 是相同的集合。 形式化地说,找到最小的正整数 $k$,使得 $\{s \oplus k \mid s \in S\} = S$,或者报告不存在这样的 $k$。 例如,如果 $S = \{1, 3, 4\}$ 且 $k = 2$,新集合为 $\{3, 1, 6\}$。如果 $S = \{0, 1, 2, 3\}$ 且 $k = 1$,操作后集合保持不变。

输入格式

输入的第一行包含一个整数 $t$($1 \leq t \leq 1024$),表示测试用例的数量。接下来的 $t$ 组测试用例,每组包括两行。 每组的第一行包含一个整数 $n$($1 \leq n \leq 1024$),表示集合 $S$ 的元素个数。第二行包含 $n$ 个互不相同的整数 $s_i$($0 \leq s_i < 1024$),表示集合 $S$ 的元素。 保证所有测试用例中 $n$ 的总和不超过 $1024$。

输出格式

输出 $t$ 行,第 $i$ 行输出第 $i$ 个测试用例的答案,即满足条件的最小正整数 $k$,如果不存在这样的 $k$,输出 $-1$。

说明/提示

在第一个测试用例中,答案是 $1$,因为它是最小的正整数并且满足所有条件。 由 ChatGPT 4.1 翻译