100 atcoder#ABC197C. [ABC197C] ORXOR

[ABC197C] ORXOR

题目描述

長さ N N の数列 A A が与えられます。
この数列を、1 1 つ以上の空でない連続した区間に分けます。
その後、分けた各区間で、区間内の数のビット単位 OR \mathrm{OR} を計算します。
こうして得られた全ての値のビット単位 XOR \mathrm{XOR} として考えられる最小値を求めてください。

ビット単位 OR \mathrm{OR} 演算とは 整数 A, B A,\ B のビット単位 OR \mathrm{OR} A OR B A\ \mathrm{OR}\ B は以下のように定義されます。

  • A OR B A\ \mathrm{OR}\ B を二進表記した際の 2k 2^k (k  0 k\ \geq\ 0 ) の位の数は、A, B A,\ B を二進表記した際の 2k 2^k の位の数のうち少なくとも片方が 1 1 であれば 1 1 、そうでなければ 0 0 である。

例えば、3 OR 5 = 7 3\ \mathrm{OR}\ 5\ =\ 7 となります (二進表記すると: 011 OR 101 = 111 011\ \mathrm{OR}\ 101\ =\ 111 )。
一般に k k 個の整数 p1, p2, p3, , pk p_1,\ p_2,\ p_3,\ \dots,\ p_k のビット単位 OR \mathrm{OR} は $ (\dots\ ((p_1\ \mathrm{OR}\ p_2)\ \mathrm{OR}\ p_3)\ \mathrm{OR}\ \dots\ \mathrm{OR}\ p_k) $ と定義され、これは p1, p2, p3,  pk p_1,\ p_2,\ p_3,\ \dots\ p_k の順番によらないことが証明できます。 ビット単位 XOR \mathrm{XOR} 演算とは 整数 A, B A,\ B のビット単位 XOR \mathrm{XOR} A XOR B A\ \mathrm{XOR}\ B は、以下のように定義されます。

  • A XOR B A\ \mathrm{XOR}\ B を二進表記した際の 2k 2^k (k  0 k\ \geq\ 0 ) の位の数は、A, B A,\ B を二進表記した際の 2k 2^k の位の数のうち一方のみが 1 1 であれば 1 1 、そうでなければ 0 0 である。

例えば、3 XOR 5 = 6 3\ \mathrm{XOR}\ 5\ =\ 6 となります (二進表記すると: 011 XOR 101 = 110 011\ \mathrm{XOR}\ 101\ =\ 110 )。
一般に k k 個以上の整数 p1, p2, p3, , pk p_1,\ p_2,\ p_3,\ \dots,\ p_k のビット単位 XOR \mathrm{XOR} は $ (\dots\ ((p_1\ \mathrm{XOR}\ p_2)\ \mathrm{XOR}\ p_3)\ \mathrm{XOR}\ \dots\ \mathrm{XOR}\ p_k) $ と定義され、これは p1, p2, p3,  pk p_1,\ p_2,\ p_3,\ \dots\ p_k の順番によらないことが証明できます。

输入格式

入力は以下の形式で標準入力から与えられる。

N N A1 A_1 A2 A_2 A3 A_3 \dots AN A_N

输出格式

答えを出力せよ。

题目大意

现在有一个长度为 nn 的数组 aa,现在让你把 aa 数组划分成多个非空的集合,并且每一个集合进行逻辑或操作,得到结果后进行异或操作。求最终异或的最小值。

3
1 5 7
2
3
10 10 10
0
4
1 3 3 1
0

提示

制約

  • 1  N  20 1\ \le\ N\ \le\ 20
  • 0  Ai < 230 0\ \le\ A_i\ \lt\ 2^{30}
  • 入力に含まれる値は全て整数である

Sample Explanation 1

[1, 5, 7] [1,\ 5,\ 7] [1, 5] [1,\ 5] [7] [7] 2 2 つの区間に分けると、それぞれの区間内の数のビット単位 OR \mathrm{OR} 5, 7 5,\ 7 となり、その XOR \mathrm{XOR} 2 2 です。 これより小さくすることはできないので、2 2 を出力します。

Sample Explanation 2

[10] [10] [10, 10] [10,\ 10] に分けるとよいです。

Sample Explanation 3

[1, 3] [1,\ 3] [3, 1] [3,\ 1] に分けるとよいです。