初識動態規劃

2021-09-12 11:55:53 字數 556 閱讀 6983

有乙個矩陣map,它每個格仔有乙個權值。從左上角的格仔開始每次只能向右或者向下走,最後到達右下角的位置,路徑上所有的數字累加起來就是路徑和,返回所有的路徑中最小的路徑和。給定乙個矩陣map及它的行數n和列數m,請返回最小路徑和。保證行列數均小於等於100.

輸入輸出樣例:

第一行,輸入n,m表示這個矩陣的行數和列數,接下來的n行,輸入每行的m個數字,也即每個格仔的權值。最後輸出最小路徑和。如:

2 31 2 3

1 1 1

輸出:4

**:

#include#includeint a[100][100];

int dp[100][100];

int min(int a,int b)else}

int getmin(int m,int n)

for(int i=1;ifor(int i=1;ireturn dp[m-1][n-1];}

int main()

} printf("%d\n",getmin(m,n));

return 0;

}

動態規劃初識

適合用動態規劃的問題特徵 可以分解成相互重疊的若干子問題 滿足最優性原理 結構性質 該問題的最優解中也包含著其子問題的最優解。一般地,子問題的聯絡體現在某種遞推關係,通過這種遞推計算可以把問題的解儲存起來,後期直接使用,避免重複運算。簡單的dp例子 遞推關係 m i j m i 1 j m i j ...

初識動態規劃

let maxw 0 最大可放重量 let weight 2 2,4 6,3 物品重量 let n weight.length let w 11 揹包最大可承受重量 let men for let i 0 i n i men.push f 0,0 11 function f i,cw f i 1,c...

初識動態規劃

動態規劃 dynamic programming 是運籌學的乙個分支,是求解決策過程 decision process 最優化的數學方法。20世紀50年代初美國數學家r.e.bellman等人在研究多階段決策過程 multistep decision process 的優化問題時,提出了著名的最優化...