Official
B - Summation By Construction Editorial by evima
\(N\) が奇数のときは、隣接行列で斜めの「線」を隣接させることで解を作れます。\(N = 5\) の場合の例を記します。
5 5 3 3 1 1 4 5 5 3 3 4 4 4 5 5 3 3 2 4 4 5 5 2 2 2 4 4 5 5
グラフの用語を使うと次の通りです。
- \(1 \leq i, j \leq N\) については、辺 \(v_i u_j\) の色を \({\lfloor (j - i) / 2 \rfloor}\) のみに基づいて決め、
- \(v_i\) を終点とする唯一のパスを辺 \(v_i u_{N + 1}\) で伸ばす。
\(N\) が偶数のときは、この構成はそのままでは使えません。「1.」の後で、各 \(v_i\) を終点とするパスが \(0\) 本か \(2\) 本あるからです。しかし、\(1 \leq i, j \leq N - 1\) については「1.」の構成を再利用し、多少の調整を加えつつ \(v_N, u_N, u_{N + 1}\) にパスを伸ばすことができます。詳細は以下の通りです。
\(N = 2\) の場合は、解はありません。\(N\) が他の偶数の場合は、次のようにして解を作ることができます。
- \(1 \leq i, j \leq N - 1\) について、\(\lfloor (j - i) / 2 \rfloor\) の値に基づいて辺 \(v_i u_j\) を色 \(2, \ldots, N\) のいずれかで塗る。\(N = 6\) の場合の例を記す。
6 6 4 4 2 . . 5 6 6 4 4 . . 5 5 6 6 4 . . 3 5 5 6 6 . . 3 3 5 5 6 . . . . . . . . .
- 各色 \(2, \ldots, N\) のパスを最下行に伸ばし(この方法は一通りしかない)、右端の空き列のいずれかにも伸ばす。このとき、各パスについて、ある \(1 \leq i \leq N / 2, j \in \{N, N + 1\}\) に対して辺 \(v_{2i - 1} u_j, v_{2i} u_j\) が含まれるようにする。また、残りの \(2\) 本の辺で色 \(1\) のパスを作る。このとき、このパスが色 \(2\) のパスと同じ列にあるようにする。
6 6 4 4 2 5 2 5 6 6 4 4 5 2 5 5 6 6 4 4 3 3 5 5 6 6 4 3 3 3 5 5 6 6 1 6 3 4 5 2 6 1
- 唯一の問題は、色 \(N\) のパスがサイクルになってしまったことである。色 \(1, 2, N\) のパスを組み替えてこれを解決する。
6 6 4 4 2 5 2 5 6 6 4 4 5 1 5 5 6 6 4 4 3 3 5 5 6 6 4 3 3 3 5 5 6 6 1 2 3 4 5 2 6 6
posted:
last update: