MathLabs

第5問

カタツムリのタートルは、2024行2023列のグリッドの最上段の行にいて、最下段の行に到達したいと考えている。しかし、最初と最後の行を除く各行にちょうど1匹ずつ、合計2022匹の隠れたモンスターがいて、どの二匹も同じ列にはいない。タートルは最初の行から最後の行へ到達するために何度も試行を行う。各試行では、最初の行の好きなマスから出発し、その後は上下左右に隣接するマスへの移動を繰り返す(すでに訪れたマスに戻ることも許される)。もしタートルがモンスターのいるマスに到達すると、その試行は終了し、タートルは最初の行に戻されて新しい試行を始める。モンスターは試行の間に動かず、タートルは自分が訪れた各マスにモンスターがいたかどうかを覚えている。最後の行のいずれかのマスに到達すると、その試行は終了しタートルの勝利となる。モンスターの配置によらず、タートルが高々 nn 回の試行で最下段の行に到達できることを保証する戦略が存在するような、最小の整数 nn を求めよ。
ステップ 3/5: M1が端にない場合
ざっくり言うと

最初のモンスターが内部にある場合、階段状の経路を端へ向けて進めれば、二匹目がどこに現れてもその上に安全な肩のセルを残せる。二匹目の位置が分かったら、その行を横切って最初のモンスターの既知の安全な列へ移る。

M1 interior  ⟹  a staircase reaches the safe column of M1M_1 \text{ interior} \implies \text{a staircase reaches the safe column of }M_1
詳しい解説

行を 1,…,s1,\ldots,s、列を 1,…,s−11,\ldots,s-1 とし、s=2024s=2024、M1=(2,j)M_1=(2,j)、1<j<s−11<j<s-1 とする。j=2j=2 の場合は右向きの鏡像階段を使い、それ以外では以下の左向き階段を使う。行2の列 j−1j-1 に入り、列 j−2j-2 まで西へ進み、行3へ下り、さらに一列西へ進んで下りる、という操作を続ける。行 rr で最初に入るセルは (r,j−r+1)(r,j-r+1) であり、下る前に一列西へ進む。この経路は (j,1)(j,1) に達する。下向きに (r,d)(r,d) へ入ったときそこが M2M_2 なら、その右上のセル (r−1,d+1)(r-1,d+1) はすでに安全に訪れている。3回目の試行では安全な接頭部を再現し、(r,d+1)(r,d+1) から行 rr に入り、その行を水平に列 jj まで進む。M2M_2 が西向きの移動で見つかった場合は、同じ行でその直後の東側のセルが安全なので、同じ水平な迂回が使える。同じ行の他のセルは M2M_2 がその行唯一のモンスターなので全て安全であり、列 jj は行2の下では安全である。なぜならそこにはすでに M1M_1 があり、一つの列に二匹のモンスターはないからである。従って列 jj を最下段まで下りればよい。階段が無傷で (j,1)(j,1) に達した場合は、行 jj を列 jj まで東へ掃き、下へ進む。その掃引中に出会うモンスターがあればそれは M2M_2 であり同じ行で回避でき、列 jj のモンスターは不可能である。ここで rr は現在の行を表し、別の箇所の rr も同じ行番号である。