SRM380 Div2 500
問題
ケガしたナイトがheight*widthの大きさのチェス盤の左下においてある。健康なナイトとは違って、このケガしたナイトは、「2セル上がって1セル右へ」「1セル上がって2セル右へ」「1セル下がって2セル右へ」「2セル下がって右へ」のいずれかの動きしかできない。
このナイトがたどることができるセルの最大値を求める。
ただし、4回より少ない移動までは特に制約はないが、4回以上の移動をする場合は上記の4つすべての動きを1度はしなければならない。
考え方
実際に十分大きなマス目を書いて、5ターンほどナイトの動きを書いてみる。
そうすると、右下方向に行く場合すべての手順を使って少ないwidthで移動することができることがわかる。なので、十分なheightがあれば、右下近くで移動するのがよいのがわかる。
heightが十分ない場合についても場合わけすると、
- h>=3のとき、
- w=1,2,3なら、答えはそれぞれ1,2,3
- w=4,5,6なら、答えは4
- w>6なら、答えはw-2
- h==2のとき、
- w=1,2なら、答えは1
- w=3,4なら、答えは2
- w=5,6なら、答えは3
- w>6なら、答えは4
- それ以外は、答えは1