J - Grid Construction Editorial
by
noya2
結論から述べれば、構築可能な \((H,W)\) の必要十分条件は次のようになります。
\[(H,W) = (2,2),(3,3),(5,5),(6n+9,6m+9),(6n+11,6m+11)\ (n,m=0,1,\dots)\]
まずはこれらの \((H,W)\) について構築可能であることを確かめましょう。
\((2,2),(3,3),(5,5)\) については次のように構築できます。
<^
v>
<<^
v.^
v>>
<<<<^
v.v.^
v>.<^
v.^.^
v>>>>
また、外側から \(3\) マス分を次のように埋めることで \(H,W\) が \(6\) ずつ小さい問題に帰着できます。
^>>>>>>>>>>>>>>>>
^.v.v.v.v.v.v.v.v
^>.^.^.^.^.^.^.<v
^.< >.v
^>. .<v
^.< >.v
^>. .<v
^.< >.v
^>.v.v.v.v.v.v.<v
^.^.^.^.^.^.^.^.v
<<<<<<<<<<<<<<<<v
適宜転置することによって、構築すべきは \((H,W)=(9,6m+9),(11,6m+11)\ (m=0,1,\dots)\) のものに限られました。たとえば、長さ \(6\) の繰り返し単位を構築することができれば良いです。 \((H,W)=(9,39),(11,41)\) の解のひとつは以下のように構築できます。
^>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
^.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v
^>.<v>.^.<v>.^.<v>.^.<v>.^.<v>.^.<v>.<v
^.^.v.<<^.v.<<^.v.<<^.v.<<^.v.<<^.v.^.v
^>>>.<v.^>.<v.^>.<v.^>.<v.^>.<v.^>.<<<v
^.v.^.v>>.^.v>>.^.v>>.^.v>>.^.v>>.^.v.v
^>.<^>.v.<^>.v.<^>.v.<^>.v.<^>.v.<^>.<v
^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.v
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<v
^>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
^.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v
^>.^.<v>.^.<v>.^.<v>.^.<v>.^.<v>.^.^.^.<v
^.<^>.v.<^>.v.<^>.v.<^>.v.<^>.v.<^>>>>>.v
^>.^.<v>.^.<v>.^.<v>.^.<v>.^.<v>.^.v.v.<v
^.<^>.v.<^>.v.<^>.v.<^>.v.<^>.v.<^>.<v>.v
^>.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.v.<v
^.<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<v>.v
^>.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.<v
^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.v
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<v
このように適切に両端を構築し、繰り返し単位を中間に並べることで、解のひとつを得ることができます。
最後に、これら以外の \((H,W)\) では不可能であることを示します。
証明
\(H\le W\) として一般性を失わない。
\(H=1\) は明らかに構築不可能。以下 \(H\ge 2\) とする。
まずグリッドの外側部分を描くことを考える。つまり \((0,y)-(0,y+1),(H,y)-(H,y+1),(x,0)-(x+1,0),(x,W)-(x+1,W)\ (x=0,1,\dots H-1, y=0,1,\dots ,W-1)\) で表される線分をすべて描くことを考える。向きの違いを除けば、本質的には \(1\) 通りしか描き方は存在しない。角の線分 \((0,0)-(0,1), (0,0)-(1,0)\) を同時に描く方法を考えると、芋づる式に外枠のコの字の配置がすべて決まることからわかる。
この方法で既に \(H=2\) の場合はすべて証明できている。上述の手続きが有効であるのは \(W=2\) のときで、この場合はすべての線分を描くことができている。一方 \(W\ge 3\) のときは上述の手続きは、線分を重複して描くことになり、無効である。
\(H\ge 3\) の場合は上述の手続きは有効である。また \(H=W=3\) の場合はすべての線分を描くことができている。しかし、 \(H=3,W\ge 4\) の場合は \((1,y)-(2,y)\ (y=2,3,\dots ,W-2)\) で表される線分がまだ塗られておらず、これらの向きはすべて等しいので、不可能である。
以下 \(H\ge 4\) とする。グリッドの外側部分を描いたとする。そのひとつ内側を描くことを考える。つまり \((1,y)-(2,y),(H-2,y)-(H-1,y),(x,1)-(x,2),(x,W-2)-(x,W-1)\ (y=2,3,\dots ,W-2)\) で表される線分をすべて描くことを考える。そのような方法は \(1\) 通りしか存在しない。これもまた角の線分 \((1,2)-(2,2),(2,1)-(2,2)\) などを描く方法を考えると、芋づる式にひとつ内側のコの字の配置がすべて決まることからわかる。ただし、この方法は \(H,W\) が共に奇数であるときに限り有効となる。そうでないとき、どこかで線分が重複して描かれてしまう。
このことから \(H=4\) は不可能であることがわかる。また、 \(H=5\) については、 \(W=5\) のみが可能であり、それ以外の場合は \(H=3,W\ge 4\) の場合と同様に同じ向きの線分が余ることになって不可能である。
さて、ここでグリッドを描くのに必要な線分の個数に注目すると、 \(H(W+1)+(H+1)W=2HW+H+W\) であることがわかる。これが \(3\) の倍数である必要があるから、 \((H\bmod 3, W\bmod 3)\) としてあり得るのは \((0,0),(2,2)\) のみであることがわかる。
ここまでの観察を整理すると、 \((H\bmod 6, W\bmod 6)\) としてあり得るのは \((3,3),(5,5)\) のみであることがわかる。以上ですべての場合が尽くされた。
posted:
last update: