No.046 D

あるマスを左に移動すると仮定すると, その下のマスには左からしか入れなくなるので, あるマスの左下のマスも左に移動するしかない. 下に移動すると仮定しても同様に左下のマスが確定する.

一番左上のマスを仮定してそこから右下を確定させていき, 再度一番左上に戻るのは となるときであり, これは の最小公倍数である. よって, と置くと, 個左下を確定させれば左上に戻る.

このことから, 仮定する数は 個である.

左上から最初の 歩を仮定すると, その移動先は左上のマスの仮定によって確定したマスであるので, あとは最初の 歩と同じ動きを繰り返すことになる.

最初の 歩の移動を 回繰り返したときに初めて左上に戻る場合にのみ, すべてのマスを塗れる.

ここで, 最初の 歩の移動先を とする. 当然ながら, である. この移動を何回繰り返せば初めて左上に戻るかを考える. その回数を とすると, となり, とおくと, の最小公倍数となる.

これが に一致していれば, 最初の 歩で に移動したときにすべてのマスを塗れる. なお, 最初の 歩で に移動する組み合わせの数は である. (階乗と逆元はあらかじめ計算しておく)

これをすべての について (高々 通り) 試し, すべてのマスが塗れる場合の組み合わせの数を足し合わせたものが答えとなる.