F - Frog Jump Editorial by Mitsubachi

実装時の補足

公式解説 に沿って実装するとします。 $C=A-B$ を固定するとします。
このとき、移動回数を増やすごとに $N-1-kC,kC$ を通ります。ここで $N-1-kC,kC$ を通っても問題のない条件を考えます。

まず明らかに \(0 \leq N-1-kC \leq N-1, 0 \leq kC \leq N-1\) が必要で、この \(2\) つは既に通っていないことが必要です。これは既に登場したかを bool で管理して、 \(C\) を変えるごとに bool を変えた部分だけ元に戻せばよいです。
また、 \(N-1-kC \neq kC\) が必要です。同じ値ならば不適でないのは明らかです。また、 \(N-1-kC\)\(+A\) する移動によってたどり着くので \(N-1-kC \geq C\) が必要です。

逆にこれらが満たされていれば条件を満たして移動できます。

posted:
last update: