Official

B - Missing Number in Graph Editorial by admin


頂点 \(v\) に置かれたカードの整数を \(c_v\) とします。

\(x = c_1\) とします。グラフが連結なので(BFS的に計算していくことで)\(c_v\) はある非負整数 \(a_v\) について \(x \oplus a_v\) の形で表せます。

結論は以下の通りです。

  • \(N\) が偶数なら、答えは \(\left(\bigoplus_{i=0}^{N} i\right)\ \oplus\ \left(\bigoplus_{v=1}^{N} a_v\right)\) に一意に定まる
  • \(N\) が奇数なら答えは常に一意に定まらない → -1

\(N\) が偶数

\(c_v\) の総 xor を取ると \(x\) が相殺されて \(\bigoplus_{v=1}^{N} a_v\) となり、\(x\) に依存しない値になります。

この値に答えを xor した値は、\(0 \dots N\) の総 xor に等しくなるはずであり、上記の式で答えが一意に定まります。

\(N\) が奇数

条件を満たすある配置について、全てのカードの整数の最下位ビットを反転させた配置も条件を満たすことから、答えが \(2\) 通り以上存在することが分かります。

posted:
last update: