AT_abc197_c.[ABC197C] ORXOR

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一个长度为 NN 的数列 AA。
请将该数列划分为 11 个或多个非空的连续区间。
然后,对每个区间内的数进行按位 OR\mathrm{OR} 运算。
请你求出所有可能的划分方式中,得到的所有区间的按位 OR\mathrm{OR} 结果再进行按位 XOR\mathrm{XOR} 运算后所得的最小值。

按位 OR\mathrm{OR} 运算定义如下:
对于整数 A,BA, B,其按位 OR\mathrm{OR} 运算 A OR BA\ \mathrm{OR}\ B 定义为:

  • A OR BA\ \mathrm{OR}\ B 的二进制表示中,第 2k2^k 位(k≥0k\geq 0)的数,如果 AA 或 BB 的该位至少有一个为 11,则为 11,否则为 00。

例如,3 OR 5=73\ \mathrm{OR}\ 5 = 7(二进制表示为:011 OR 101=111011\ \mathrm{OR}\ 101 = 111)。
一般地,kk 个整数 p1,p2,p3,…,pkp_1, p_2, p_3, \dots, p_k 的按位 OR\mathrm{OR} 运算定义为 ((…((p1 OR p2) OR p3) OR… )OR pk)((\dots((p_1\ \mathrm{OR}\ p_2)\ \mathrm{OR}\ p_3)\ \mathrm{OR}\dots)\mathrm{OR}\ p_k),并且可以证明与顺序无关。

按位 XOR\mathrm{XOR} 运算定义如下:
对于整数 A,BA, B,其按位 XOR\mathrm{XOR} 运算 A XOR BA\ \mathrm{XOR}\ B 定义为:

  • A XOR BA\ \mathrm{XOR}\ B 的二进制表示中,第 2k2^k 位(k≥0k\geq 0)的数,如果 AA 和 BB 的该位恰好有一个为 11,则为 11,否则为 00。

例如,3 XOR 5=63\ \mathrm{XOR}\ 5 = 6(二进制表示为:011 XOR 101=110011\ \mathrm{XOR}\ 101 = 110)。
一般地,kk 个或更多整数 p1,p2,p3,…,pkp_1, p_2, p_3, \dots, p_k 的按位 XOR\mathrm{XOR} 运算定义为 ((…((p1 XOR p2) XOR p3) XOR… )XOR pk)((\dots((p_1\ \mathrm{XOR}\ p_2)\ \mathrm{XOR}\ p_3)\ \mathrm{XOR}\dots)\mathrm{XOR}\ p_k),并且可以证明与顺序无关。

输入格式

输入以以下格式从标准输入读入。

NN A1A_1 A2A_2 A3A_3 …\dots ANA_N

输出格式

请输出答案。

输入输出样例

  • 输入#1

    3
    1 5 7

    输出#1

    2
  • 输入#2

    3
    10 10 10

    输出#2

    0
  • 输入#3

    4
    1 3 3 1

    输出#3

    0

说明/提示

数据范围

  • 1≤N≤201 \leq N \leq 20
  • 0≤Ai<2300 \leq A_i < 2^{30}
  • 输入中的所有值均为整数。

样例解释 1

将 [1,5,7][1, 5, 7] 分成 [1,5][1, 5] 和 [7][7] 两个区间时,各区间内数的按位 OR\mathrm{OR} 分别为 5,75, 7,它们的 XOR\mathrm{XOR} 为 22。无法得到更小的值,因此输出 22。

样例解释 2

可以分成 [10][10] 和 [10,10][10, 10]。

样例解释 3

可以分成 [1,3][1, 3] 和 [3,1][3, 1]。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页