解説

H>WH > W のときは、HHWW を入れ替えて考えても問題ありません。以下、HWH \leq W の場合について考えます。

(1) H=1H=1 のとき

H=1H=1 のときは、マス (1,1)(1,1) から動くことができません。したがって、答えは 11 です。

(2) H=2H=2 のとき

H=2H=2 のときは、kk を非負整数として、マス (1,4k+1)(1, 4k+1) もしくはマス (2,4k+3)(2, 4k+3) と表されるマスにのみ到達できます。
したがって、答えは W2\lceil \frac{W}{2} \rceil です。

(3) H,W=3H, W = 3 のとき

H,W=3H, W = 3 のときは、マス (2,2)(2, 2) 以外のすべてのマスに到達できます。
したがって、答えは 88 です。

(4) H3,W4H \geq 3, W \geq 4 のとき

H3,W4H \geq 3, W \geq 4 のときは、すべてのマスに到達できます。したがって、答えは HWHW です。以下、そのことを示します。
H=3,W=4H = 3, W = 4 の場合に、すべてのマスに到達できることが確かめられます。これにより、「3×43 \times 4 マスの領域のうちどれか 11 マスに到達できれば、残りのマスすべてに到達できる」ということが言えます。
H3,W4H \geq 3, W \geq 4 のとき、マス目全体を 3×43 \times 4 マスの領域の重ね合わせで埋め尽くすことが可能であるため、すべてのマスに到達できます。

C++
Python