题目描述
長さ N の数列 A が与えられます。
この数列を、1 つ以上の空でない連続した区間に分けます。
その後、分けた各区間で、区間内の数のビット単位 OR を計算します。
こうして得られた全ての値のビット単位 XOR として考えられる最小値を求めてください。
ビット単位 OR 演算とは 整数 A, B のビット単位 OR、A OR B は以下のように定義されます。
- A OR B を二進表記した際の 2k (k ≥ 0) の位の数は、A, B を二進表記した際の 2k の位の数のうち少なくとも片方が 1 であれば 1、そうでなければ 0 である。
例えば、3 OR 5 = 7 となります (二進表記すると: 011 OR 101 = 111)。
一般に k 個の整数 p1, p2, p3, …, pk のビット単位 OR は $ (\dots\ ((p_1\ \mathrm{OR}\ p_2)\ \mathrm{OR}\ p_3)\ \mathrm{OR}\ \dots\ \mathrm{OR}\ p_k) $ と定義され、これは p1, p2, p3, … pk の順番によらないことが証明できます。 ビット単位 XOR 演算とは 整数 A, B のビット単位 XOR 、A XOR B は、以下のように定義されます。
- A XOR B を二進表記した際の 2k (k ≥ 0) の位の数は、A, B を二進表記した際の 2k の位の数のうち一方のみが 1 であれば 1、そうでなければ 0 である。
例えば、3 XOR 5 = 6 となります (二進表記すると: 011 XOR 101 = 110)。
一般に k 個以上の整数 p1, p2, p3, …, pk のビット単位 XOR は $ (\dots\ ((p_1\ \mathrm{XOR}\ p_2)\ \mathrm{XOR}\ p_3)\ \mathrm{XOR}\ \dots\ \mathrm{XOR}\ p_k) $ と定義され、これは p1, p2, p3, … pk の順番によらないことが証明できます。
输入格式
入力は以下の形式で標準入力から与えられる。
N A1 A2 A3 … AN
输出格式
答えを出力せよ。
题目大意
现在有一个长度为 n 的数组 a,现在让你把 a 数组划分成多个非空的集合,并且每一个集合进行逻辑或操作,得到结果后进行异或操作。求最终异或的最小值。
3
1 5 7
2
3
10 10 10
0
4
1 3 3 1
0
提示
制約
- 1 ≤ N ≤ 20
- 0 ≤ Ai < 230
- 入力に含まれる値は全て整数である
Sample Explanation 1
[1, 5, 7] を [1, 5] と [7] の 2 つの区間に分けると、それぞれの区間内の数のビット単位 OR は 5, 7 となり、その XOR は 2 です。 これより小さくすることはできないので、2 を出力します。
Sample Explanation 2
[10] と [10, 10] に分けるとよいです。
Sample Explanation 3
[1, 3] と [3, 1] に分けるとよいです。