positive
左端の列から始まるすべての整数の行列が与えられた場合0th
、右端の列への最小経路を見つけます(n - 1)th
。例えば:
最短経路は、1を含む経路です。
任意の正方形m[i, j]
で、4つの方向に移動できます(left, right, up, down
); もちろん、左端、右端の行/列のすべてのコーナーケースを除きます。たとえば、では[0, 0]
、移動できるのはright
またはdown
です。私の解決策は、頂点
のグラフを作成してから、Floyd-Warshallを実行して、任意の2つの頂点のすべてのペアの最短経路を計算することです。次に、別のネストされたループを実行して、列のすべての頂点と列のすべての頂点をチェックし、最小パスを見つけます。
しかし、私の教授は、次の繰り返しを使用して別のアルゴリズムを提案しました。m x n
(u, v)
for
0th
(n - 1)th
S[i, j, L] =
min(
S[i - 1, j, L - 1] + cost[i - 1, j],
S[i + 1, j, L - 1] + cost[i + 1, j],
S[i, j - 1, L - 1] + cost[i, j - 1],
S[i, j + 1, L - 1] + cost[i, j + 1]);
それがどのように機能するのか私にはわかりません!どの正方形でも[i, j]
4方向に移動できるため、事前に計算された値に基づいてテーブルを作成することはできません。
私はここで何かを逃しましたか?この再発がどのように機能するのかわかりません。何か案が?