AT_abc197_c [ABC197C] ORXOR
题目描述
给定一个长度为 $N$ 的数列 $A$。
请将该数列划分为 $1$ 个或多个非空的连续区间。
然后,对每个区间内的数进行按位 $\mathrm{OR}$ 运算。
请你求出所有可能的划分方式中,得到的所有区间的按位 $\mathrm{OR}$ 结果再进行按位 $\mathrm{XOR}$ 运算后所得的最小值。
按位 $\mathrm{OR}$ 运算定义如下:
对于整数 $A, B$,其按位 $\mathrm{OR}$ 运算 $A\ \mathrm{OR}\ B$ 定义为:
- $A\ \mathrm{OR}\ B$ 的二进制表示中,第 $2^k$ 位($k\geq 0$)的数,如果 $A$ 或 $B$ 的该位至少有一个为 $1$,则为 $1$,否则为 $0$。
例如,$3\ \mathrm{OR}\ 5 = 7$(二进制表示为:$011\ \mathrm{OR}\ 101 = 111$)。
一般地,$k$ 个整数 $p_1, p_2, p_3, \dots, p_k$ 的按位 $\mathrm{OR}$ 运算定义为 $((\dots((p_1\ \mathrm{OR}\ p_2)\ \mathrm{OR}\ p_3)\ \mathrm{OR}\dots)\mathrm{OR}\ p_k)$,并且可以证明与顺序无关。
按位 $\mathrm{XOR}$ 运算定义如下:
对于整数 $A, B$,其按位 $\mathrm{XOR}$ 运算 $A\ \mathrm{XOR}\ B$ 定义为:
- $A\ \mathrm{XOR}\ B$ 的二进制表示中,第 $2^k$ 位($k\geq 0$)的数,如果 $A$ 和 $B$ 的该位恰好有一个为 $1$,则为 $1$,否则为 $0$。
例如,$3\ \mathrm{XOR}\ 5 = 6$(二进制表示为:$011\ \mathrm{XOR}\ 101 = 110$)。
一般地,$k$ 个或更多整数 $p_1, p_2, p_3, \dots, p_k$ 的按位 $\mathrm{XOR}$ 运算定义为 $((\dots((p_1\ \mathrm{XOR}\ p_2)\ \mathrm{XOR}\ p_3)\ \mathrm{XOR}\dots)\mathrm{XOR}\ p_k)$,并且可以证明与顺序无关。
输入格式
输入以以下格式从标准输入读入。
> $N$ $A_1$ $A_2$ $A_3$ $\dots$ $A_N$
输出格式
请输出答案。
说明/提示
### 数据范围
- $1 \leq N \leq 20$
- $0 \leq A_i < 2^{30}$
- 输入中的所有值均为整数。
### 样例解释 1
将 $[1, 5, 7]$ 分成 $[1, 5]$ 和 $[7]$ 两个区间时,各区间内数的按位 $\mathrm{OR}$ 分别为 $5, 7$,它们的 $\mathrm{XOR}$ 为 $2$。无法得到更小的值,因此输出 $2$。
### 样例解释 2
可以分成 $[10]$ 和 $[10, 10]$。
### 样例解释 3
可以分成 $[1, 3]$ 和 $[3, 1]$。
由 ChatGPT 4.1 翻译