最大價值(DP)

2021-07-16 13:58:23 字數 766 閱讀 7223

最大價值

輸入

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

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

輸出

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

輸入示例3

1 3 3

2 1 3

2 2 1

輸出示例11

狀態轉移方程:dp[i][j]=max(dp[i][j-1],dp[i-1][j])+map[i][j](注意當i或j為0時dp【i】【j】為負無窮;

因為我的**map陣列的下標是從一開始的;且dp[1][1]=map[1][1];)

#include#include#includeusing namespace std;

int map[505][505];

int dp[505][505];

#define inf -0x3f3f3f3f;

int main()

} dp[1][1]=map[1][1];

for(int i=1;i<=n;i++) }

printf("%d\n",dp[n][n]);

return 0;

}

最大價值問題

11只貓和阿呆鳥 題目描述 11只貓去了阿呆鳥的家鄉,準備大吃一頓烤全鳥。結果遇上了巨無霸阿呆鳥,被全部抓走給阿呆鳥做土豆餅了。巨無霸阿呆鳥一次能吃好多好多土豆餅,11只貓天天象小奴隸一樣,真的好累啊!虎貓隊長想到了乙個辦法,他準備多一些花樣,比如烤全鳥 鹹魚幹還有好多其他的好吃的。多吃肉的好處就是...

禮物的最大價值

題目 在乙個mxn的棋盤的每乙個都放有乙個禮物,每個禮物都有一定的價值 價值大於0 你可以從棋盤的左上角開始拿格仔裡的禮物,並每次向右或者向下移動一格,知道到達棋盤的右下角。給定乙個棋盤及其上面的禮物,請計算你最多能達到多少價值的禮物。方法一 動態規劃 二維陣列儲存 int getmaxvalue ...

禮物的最大價值

題目 在乙個m n的棋盤的每一格都放有乙個禮物,每個禮物都有一定的價值 價值大於0 你可以從棋盤的左上角開始拿格仔裡的禮物,並每次向左或者向下移動一格直到到達棋盤的右下角。給定乙個棋盤及其上面的禮物,請計算你最多能拿到多少價值的禮物?動態規劃,優化前 int getmaxvalue const in...