動態規劃(1)

2021-09-12 02:35:57 字數 1220 閱讀 1361

數字三角形

在上面的數字三角形中尋找一條從頂部到底邊的路徑,

使得路徑上所經過的數字之和最大。

路徑上的每一步都只能往左下或 右下走。只

需要求出這個最大和即可,不必給出具體路徑。

三角形的行數大於1小於等於100,數字為 0 - 99

輸入格式:首先輸入乙個整數n表示讀入數字三角的層數,然後輸入n層數字三角形。

3 88 1 0

2 7 4 4

4 5 2 6 5

要求輸出最大和

樣例輸出:

//數字三角形

//記憶化搜尋

#include #include using namespace std;

#define m 1000

int n;

int a[m][m];

int b[m][m];

int solve(int i,int j);

int main()

}int z=solve(0,0);

cout<=0;i--)

}*/

1083 矩陣取數問題

1 秒 131,072 kb 5 分 1 級題

乙個n*n矩陣中有不同的正整數,經過這個格仔,就能獲得相應價值的獎勵,從左上走到右下,只能向下向右走,求能夠獲得的最大價值。

例如:3 * 3的方格。

1 3 3

2 1 3

2 2 1

能夠獲得的最大價值為:11。

輸入第1行:n,n為矩陣的大小。(2 <= n <= 500)

第2 - n + 1行:每行n個數,中間用空格隔開,對應格仔中獎勵的價值。(1 <= n[i] <= 10000)

輸出輸出能夠獲得的最大價值。

輸入樣例

31 3 3

2 1 3

2 2 1

輸出樣例

11

#include #include #include using namespace std;

#define mn 520

int n;

int a[mn][mn],b[mn][mn];

int f(int i,int j);

int main()

}int z=f(0,0);

cout

}int f(int i,int j)

動態規劃1

維基百科 動態規劃是一種在數學和 電腦科學 中使用的,用於求解包含 重疊子問題 的最優化 問題的方法。其基本思想是,將原問題分解為相似的子問題,在求解的過程中通過子問題的解求出原問題的解。動態規劃的思想是多種演算法的基礎,被廣泛應用於電腦科學和工程領域。比較著名的應用例項有 求解 最短路徑 問題,揹...

動態規劃 1

動態規劃是對最優化問題的一種新的演算法設計方法。由於各種問題的性質不同,確定最優解的條件也互不相同,因而動態規劃的沒計法對不同的問題,有各具特色的表示方式。不存在一種萬能的動態規劃演算法。但是可以通過對若干有代表性的問題的動態規劃演算法進行討論,學會這一設計方法。多階段決策過程最優化問題 動態規劃的...

動態規劃1

首先,動態規劃的最基本要求在於無後效性 即結果態之和之前某態有關,並且對於該之前態我們並不關心它到底是怎麼來的 和n到n 1的跳躍一樣,它也是依賴轉移方程得來。比如0 1揹包 我們只要永遠依賴dp i j max dp i 1 j,dp i 1 j wi vi 這個轉移方程即可,並不在乎它具體細節。...