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