atcoder#AGC035A. [AGC035A] XOR Circle

[AGC035A] XOR Circle

题目描述

すぬけ君は N N 枚の帽子を持っています。i i 枚目の帽子には整数 ai a_i が書かれています。

N N 頭のラクダが円環状に並んでいます。 すぬけ君はそれぞれのラクダに 1 1 枚の帽子を被せようとしています。

どのラクダについても以下の条件が成立するような帽子の被せ方が存在するならば Yes を、そうでなければ No を出力してください。

  • 両隣のラクダが被っている帽子に書かれた数のビットごとの排他的論理和が自身の被っている帽子に書かれた数と等しい

ビットごとの排他的論理和について n n 個の非負整数 x1,x2, , xn x_1,x_2,\ \ldots,\ x_n の排他的論理和 x1  x2    xn x_1\ \oplus\ x_2\ \oplus\ \ldots\ \oplus\ x_n は以下のように定義されます。

  • x1  x2    xn x_1\ \oplus\ x_2\ \oplus\ \ldots\ \oplus\ x_n を二進表記した際の 2k(k  0) 2^k(k\ \geq\ 0) の位の数は x1,x2, , xn x_1,x_2,\ \ldots,\ x_n のうち、二進表記した際の 2k(k  0) 2^k(k\ \geq\ 0) の位の数が 1 1 となるものの個数が奇数ならば 1 1 、そうでなければ 0 0 となる。

例えば、3  5 = 6 3\ \oplus\ 5\ =\ 6 となります。

输入格式

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

N N a1 a_1 a2 a_2 \ldots aN a_{N}

输出格式

答えを出力せよ。

题目大意

题目描述

  • 给出 NN 个整数,第 ii 个整数为 aia_i
  • 请回答这些整数能否通过改变排列实现下面的规则。可以输出'Yes',否则输出'No'。
    • 排列规则:对于排列后的第 ii 个整数,其值等同于第 i1i-1 个整数与第 i+1i+1 个整数的按位异或值。
    • 特别的是:当 i=1i=1 时,i1=Ni-1=N;当 i=Ni=N 时,i+1=1i+1=1

什么是异或?

n n 个非负整数 x1,x2,,xn x_1, x_2, \ldots, x_n 的按位异或 x1x2xn x_1 \oplus x_2 \oplus \ldots \oplus x_n 定义如下:

  • x1x2xn x_1 \oplus x_2 \oplus \ldots \oplus x_n 的结果以二进制形式书写时, 第 2k 2^k 个数字(k0 k \geq 0 ) 是 1 1 当且仅当 x1,x2,,xn x_1, x_2, \ldots, x_n 共有奇数个整数的二进制形式中第 2k2^k 位是 11。 反之则为 00。举个例子:35=6 3 \oplus 5 = 6

样例解释

样例1

按照 1,2,31,2,3 这种顺序排列是合法的,所以答案为'Yes'。

样例2

没有任何一组合法的排列方式,所以答案为'No'。

3
1 2 3
Yes
4
1 2 4 8
No

提示

制約

  • 入力は全て整数
  • 3  N  105 3\ \leq\ N\ \leq\ 10^{5}
  • 0  ai  109 0\ \leq\ a_i\ \leq\ 10^{9}

Sample Explanation 1

- 1,2,3 1,2,3 が書かれた帽子を時計回りに被せたとき、どのラクダも問題文中の条件を満たすため、答えは Yes となります。

Sample Explanation 2

- そのような被せ方は存在しません。よって、答えは No となります。