由題意可得:第一行所有點只能一直左走走到,所以f[i][j] = a[i][j] + f[i][j-1], 同理第一列的點也只能一直向下走走到,f[i][j] = a[i][j] + f[i-1][j] 。
預處理完後,餘下所有點到達該點的最小費用都等於min(到左邊的點的最小費用, 到上面的點的最小費用)+該點的費用。
#include #include using namespace std;
//mystery_sky
//#define m 101
int f[m][m], a[m][m], n;
int ans;
int main()
for(int i = 2; i <= n; i++)
for(int j = 2; j <= n; j++) f[i][j] = min(f[i-1][j], f[i][j-1]) + a[i][j];
printf("%d\n", f[n][n]);
return 0;
}
1287 最低通行費
乙個商人穿過乙個n n的正方形的網格,去參加乙個非常重要的商務活動。他要從網格的左上角進,右下角出。每穿越中間1個小方格,都要花費1個單位時間。商人必須在 2n 1 個單位時間穿越出去。而在經過中間的每個小方格時,都需要繳納一定的費用。這個商人期望在規定時間內用最少費用穿越出去。請問至少需要多少費用...
最低通行費
描述 乙個商人穿過乙個 n n 的正方形的網格,去參加乙個非常重要的商務活動。他要從網格的左上角進,右下角出。每穿越中間1個小方格,都要花費1個單位時間。商人必須在 2n 1 個單位時間穿越出去。而在經過中間的每個小方格時,都需要繳納一定的費用。這個商人期望在規定時間內用最少費用穿越出去。請問至少需...
7614 最低通行費
總時間限制 1000ms 記憶體限制 65536kb 描述 乙個商人穿過乙個 n n 的正方形的網格,去參加乙個非常重要的商務活動。他要從網格的左上角進,右下角出。每穿越中間1個小方格,都要花費1個單位時間。商人必須在 2n 1 個單位時間穿越出去。而在經過中間的每個小方格時,都需要繳納一定的費用。...