以下のように考えても、答えは変わりません。
このようにすると、グリッド上の最短経路問題になります。ダイクストラ法を用いることで、 O(HWlogHW)O(HW \log HW)O(HWlogHW) で解くことができますが。高速な言語でないと厳しいと思います。 今回は移動コストが 222 種類であるため、01BFSを用いることにより O(HW)O(HW)O(HW) で計算できます。Pythonではこれでもやや厳しめですが、頑張ってください。