3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AGC 035: A - XOR Circle

Posted at

嘘解法

$i$ 番目のラクダにかぶせる帽子を $b_i$ と書くことにします。$\{b_1、 b_2、 \cdots、 b_N\} = \{a_1、 a_2、 \cdots、 a_N\}$ です。

$b_i$ が満たす条件を列挙すると次のようになります。

\begin{align}
b_N \oplus b_2 &= b_1、 \\ 
b_1 \oplus b_3 &= b_2、 \\
\vdots &\\
b_{N-1} \oplus b_1 &= b_N
\end{align}

よって、すべてをXORすると、 $b_1 \oplus b_2 \oplus \cdots \oplus b_N = b_1 \oplus b_2 \oplus \cdots \oplus b_N \oplus b_1 \oplus b_2 \oplus \cdots \oplus b_N = 0$。
したがって $a_1 \oplus a_2 \oplus \cdots \oplus a_N = 0$。

これは必要条件にすぎず、たとえば、$N=4$ で $\{a_i\} = \{1、 1、 1、 1\}$ だと条件は満たしますが解はありません。

正しい解法

上の連立方程式をもう少し操作してみましょう。

まず、$b_1 \oplus b_3 = b_2$ の両辺に $b_3$ をXORすると、$b_1 = b_2 \oplus b_3$ となります。
これと $b_2 \oplus b_4 = b_3$ から、$b_1 = b_2 \oplus (b_2 \oplus b_4) = b_4$ となることがわかります。
同様にして、$b_2 = b_5 = \cdots$、$b_3 = b_6 = \cdots$ であることもわかります。したがって、$\{a_i\}$ に含まれる要素は高々3種類でなければなりません。以下、種類の数で場合分けをします。

3種類のとき

3つの要素を $a_1、 a_2、 a_3$ とおくと、$a_1 \oplus a_2 \oplus a_3 = 0$ でなければなりません。また、$\{a_i\}$ に含まれる $a_1、 a_2、 a_3$ の個数は、すべて $N/3$ ずつでなければなりません。このことから、$N$ が3の倍数であることも必要になります。

以上の条件を満たすとき、最初の3頭に $a_1、 a_2、 a_3$ を配り、以後の3頭ずつにも最初に配った順番どおりに分配すればよいので、帽子の割り振り方は6通りあり、問いの答えになります。

2個のとき

2つの要素を $a_1、 a_2$ とおくと、$a_1 \oplus a_2 \oplus a_2 = 0$ または $a_1 \oplus a_1 \oplus a_2 = 0$ でなければなりません。したがって、どちらかは $0$ です。$a_1 = 0$ とすると、$a_1$ の帽子をもらったラクダの両隣には、$a_2$ の帽子をもらったラクダがいなければならないので、$\{a_i\}$ には $0$ が $N/3$ 個、$a_2$ が $2N/3$ 個なければなりません。このことから、$N$ が3の倍数であることも必要になります。

以上の条件を満たすとき、帽子の割り振り方は最初の3頭のうち誰が $0$ をもらうかで3通りあり、問いの答えになります。

1個のとき

言うまでもなく $\{a_i\}$ はすべて $0$ である必要があります。このときは、$N$ がいくつであっても問いの答えになります。

感想

嘘解法で通してすいませんでした。
強い人が「どうしたら全部XORって思いつくのかわかりません」と言っていてちょっと傷つくなど。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?