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

2021-07-30 15:39:05 字數 647 閱讀 8282

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

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

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

先看題目只能走(2n-1)步,不難看出只能向右和向下走,故設f[i][j]為到達(i,j)位上最省錢的花錢數,因只能向下與向右,故不難推出f[i][j]=min(f[i][j-1]+f[i-1][j])+a[i][j]。細節請看下面。
#include

#include

#include

#include

using

namespace std;

intmain()}

for(

int i=

1;i<=n;i++)

//將f[1][1]初始化,因為此店上面與左邊是9999,故一定初始化此點

else}}

cout<}

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

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

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

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

關於動態規劃的練習題

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