動態規劃練習題(1)最小通行費

2021-08-21 10:36:21 字數 832 閱讀 2440

乙個商人穿過乙個n×n的正方形的網格,去參加乙個非常重要的商務活動。他要從網格的左上角進,右下角出。每穿越中間1個小方格,都要花費1個單位時間。商人必須在(2n-1)個單位時間穿越出去。而在經過中間的每個小方格時,都需要繳納一定的費用。

這個商人期望在規定時間內用最少費用穿越出去。請問至少需要多少費用?

注意:不能對角穿越各個小方格(即,只能向上下左右四個方向移動且不能離開網格)。

第一行是乙個整數,表示正方形的寬度n (1≤n<100);

後面n行,每行n個不大於100的整數,為網格上每個小方格的費用。

至少需要的費用。

5

1 4 6 8 10

2 5 7 15 17

6 8 9 18 20

10 11 12 19 21

20 23 25 29 33

109

樣例中,最小值為109=1+2+5+7+9+12+19+21+33。

經典的動規入門題,因為限制在2n-1,所以只能向下或者向右走,想到這步就很好辦了。狀態轉移方程也很好推的……注意邊界(i==1和j==1時)的狀態只能由乙個方向推出

#include #include using namespace std;

int n,f[1000][1000];

int main()

else if(j==1) f[i][j]+=f[i-1][j];

else f[i][j]+=min(f[i-1][j],f[i][j-1]);

} cout

}

動態規劃練習題 19(最低通行費)

乙個商人穿過乙個 n n 的正方形的網格,去參加乙個非常重要的商務活動。他要從網格的左上角進,右下角出。每穿越中間1個小方格,都要花費1個單位時間。商人必須在 2n 1 個單位時間穿越出去。而在經過中間的每個小方格時,都需要繳納一定的費用。這個商人期望在規定時間內用最少費用穿越出去。請問至少需要多少...

動態規劃練習題 6(登山)

隊員們發現山上乙個有n個景點,並且決定按照順序來瀏覽這些景點,即每次所瀏覽景點的編號都要大於前乙個瀏覽景點的編號。同時隊員們還有另乙個登山習慣,就是不連續瀏覽海拔相同的兩個景點,並且一旦開始下山,就不再向上走了。隊員們希望在滿足上面條件的同時,盡可能多的瀏覽景點,你能幫他們找出最多可能瀏覽的景點數麼...

關於動態規劃的練習題

1.給出不同面額的硬幣以及乙個總金額.寫乙個方法來計算給出的總金額可以換取的最少的硬幣數量.如果已有硬幣的任意組合均無法與總金額面額相等,那麼返回 1。public static intdp int arr,int count 如果不能湊成額度,則返回 1 if cost count integer...