AT_abc197_c.[ABC197C] ORXOR
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个长度为 N 的数列 A。
请将该数列划分为 1 个或多个非空的连续区间。
然后,对每个区间内的数进行按位 OR 运算。
请你求出所有可能的划分方式中,得到的所有区间的按位 OR 结果再进行按位 XOR 运算后所得的最小值。
按位 OR 运算定义如下:
对于整数 A,B,其按位 OR 运算 A OR B 定义为:
- A OR B 的二进制表示中,第 2k 位(k≥0)的数,如果 A 或 B 的该位至少有一个为 1,则为 1,否则为 0。
例如,3 OR 5=7(二进制表示为:011 OR 101=111)。
一般地,k 个整数 p1,p2,p3,…,pk 的按位 OR 运算定义为 ((…((p1 OR p2) OR p3) OR…)OR pk),并且可以证明与顺序无关。
按位 XOR 运算定义如下:
对于整数 A,B,其按位 XOR 运算 A XOR B 定义为:
- A XOR B 的二进制表示中,第 2k 位(k≥0)的数,如果 A 和 B 的该位恰好有一个为 1,则为 1,否则为 0。
例如,3 XOR 5=6(二进制表示为:011 XOR 101=110)。
一般地,k 个或更多整数 p1,p2,p3,…,pk 的按位 XOR 运算定义为 ((…((p1 XOR p2) XOR p3) XOR…)XOR pk),并且可以证明与顺序无关。
输入格式
输入以以下格式从标准输入读入。
N A1 A2 A3 … AN
输出格式
请输出答案。
输入输出样例
输入#1
3 1 5 7
输出#1
2
输入#2
3 10 10 10
输出#2
0
输入#3
4 1 3 3 1
输出#3
0
说明/提示
数据范围
- 1≤N≤20
- 0≤Ai<230
- 输入中的所有值均为整数。
样例解释 1
将 [1,5,7] 分成 [1,5] 和 [7] 两个区间时,各区间内数的按位 OR 分别为 5,7,它们的 XOR 为 2。无法得到更小的值,因此输出 2。
样例解释 2
可以分成 [10] 和 [10,10]。
样例解释 3
可以分成 [1,3] 和 [3,1]。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?