乙個商人穿過乙個n×n的正方形的網格,去參加乙個非常重要的商務活動。
他要從網格的左上角進,右下角出。
每穿越中間1個小方格,都要花費1個單位時間。
商人必須在(2n-1)個單位時間穿越出去。
而在經過中間的每個小方格時,都需要繳納一定的費用。
這個商人期望在規定時間內用最少費用穿越出去。
請問至少需要多少費用?
注意:不能對角穿越各個小方格(即,只能向上下左右四個方向移動且不能離開網格)。
輸入格式
第一行是乙個整數,表示正方形的寬度n。
後面n行,每行n個不大於100的整數,為網格上每個小方格的費用。
輸出格式
輸出乙個整數,表示至少需要的費用。
資料範圍
1≤n≤100
輸入樣例:51
46810
25715
17689
1820
1011
1219
2120
2325
2933
輸出樣例:
109樣例解釋
樣例中,最小值為109=1
+2+5
+7+9
+12+19
+21+33
#include
#include
using
namespace std;
const
int n =
110;
int n;
int w[n]
[n];
int f[n]
[n];
intmain()
for(
int i =
1; i <= n; i ++
)for
(int j =
1; j <= n; j ++)if
(i==
1&&j==
1)f[i]
[j]=w[i]
[j];
else
f[i]
[j]=
min(f[i -1]
[j], f[i]
[j -1]
)+ w[i]
[j];
printf
("%d\n"
, f[n]
[n])
;return0;
}
DP 線性DP 邊界 細節 最低通行費
乙個商人穿過乙個n n的正方形的網格,去參加乙個非常重要的商務活動。他要從網格的左上角進,右下角出。每穿越中間1個小方格,都要花費1個單位時間。商人必須在 2n 1 個單位時間穿越出去。而在經過中間的每個小方格時,都需要繳納一定的費用。這個商人期望在規定時間內用最少費用穿越出去。請問至少需要多少費用...
最低通行費
描述 乙個商人穿過乙個 n n 的正方形的網格,去參加乙個非常重要的商務活動。他要從網格的左上角進,右下角出。每穿越中間1個小方格,都要花費1個單位時間。商人必須在 2n 1 個單位時間穿越出去。而在經過中間的每個小方格時,都需要繳納一定的費用。這個商人期望在規定時間內用最少費用穿越出去。請問至少需...
7614 最低通行費
總時間限制 1000ms 記憶體限制 65536kb 描述 乙個商人穿過乙個 n n 的正方形的網格,去參加乙個非常重要的商務活動。他要從網格的左上角進,右下角出。每穿越中間1個小方格,都要花費1個單位時間。商人必須在 2n 1 個單位時間穿越出去。而在經過中間的每個小方格時,都需要繳納一定的費用。...