Official

B - Balanced Neighbors 2 Editorial by camypaper


\(1<N<6\) のときは条件を満たすグラフは存在しません。
\(N=6\) のとき、\(i\)\(N+1-i\) が距離 \(3\) になるような長さ \(6\) のサイクルを作ることで条件を満たすことができます。

この例を考えると、\(N\) が偶数のとき、\(i\)\(N+1-i\) の距離が \(3\) で、それ以外の \(2\) 点間の距離が \(1\)\(2\) になるようなグラフを構成することができれば都合がよいことがわかります。
\(N\) が奇数のときも同様に \(i\)\(N-i\) の距離が \(3\) でそれ以外の頂点間の距離が \(1\)\(2\) であるようなグラフを構成できればよいです。

\(U=\{1,2,3,\ldots, \lfloor \frac{N}{2} \rfloor \}, V=\{ \lfloor \frac{N}{2} \rfloor+1,\ldots,N \} \) として完全二部グラフを作り、上記の \(\lfloor \frac{N}{2} \rfloor\) 個のペアについて対応する辺を取り除くことでそのようなグラフを構成することができ、問題の条件を満たします。

上述のグラフは \(N=6\) の例から以下の操作を繰り返してボトムアップに得ることもできます。
グラフについて同じ色の頂点が隣り合わないように白と黒に塗り分けられているものとします。

  • 奇数回目の操作では白頂点を新たに一つ用意し、全ての黒頂点への辺を張る
  • 偶数回目の操作では黒頂点を新たに一つ用意し、直前の操作で作成した白頂点以外の白頂点への辺を張る

posted:
last update: