51nod1083 矩陣取數問題 簡單dp

2021-08-22 16:39:30 字數 965 閱讀 2668

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

例如:3 * 3的方格。

1 3 3

2 1 3

2 2 1

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

input

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

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

output

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

sample input

3

1 3 3

2 1 3

2 2 1

sample output

11
思路:很基礎的一道dp,有點像三角形求走的最大和,我們假設dp[ i ] [j ]表示走到位置( i , j )所獲得的最大值

那麼dp[ i ][ j ] = max ( dp[ i - 1][ j ],dp[ i ][ j - 1] ) + maze[ i ][ j ] (表示矩陣的位置)

**:

#include#include#include#include#include#include#include#include#include#include#include#define ll long long

#define inf 0x3f3f3f3f

#define mem(a) memset(a,0,sizeof(a))

using namespace std;

const int maxn = 520;

int a[maxn][maxn],dp[maxn][maxn];

int main()

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

return 0;

}

51Nod 1083 矩陣取數問題

乙個n n矩陣中有不同的正整數,經過這個格仔,就能獲得相應價值的獎勵,從左上走到右下,只能向下向右走,求能夠獲得的最大價值。例如 3 3的方格。1 3 3 2 1 3 2 2 1 能夠獲得的最大價值為 11。input 第1行 n,n為矩陣的大小。2 n 500 第2 n 1行 每行n個數,中間用空...

51nod 1083 矩陣取數問題

1083 矩陣取數問題 基準時間限制 1 秒 空間限制 131072 kb 分值 5難度 1級演算法題 乙個n n矩陣中有不同的正整數,經過這個格仔,就能獲得相應價值的獎勵,從左上走到右下,只能向下向右走,求能夠獲得的最大價值。例如 3 3的方格。1 3 3 2 1 3 2 2 1 能夠獲得的最大價...

51nod 1083 矩陣取數問題

基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 乙個n n矩陣中有不同的正整數,經過這個格仔,就能獲得相應價值的獎勵,從左上走到右下,只能向下向右走,求能夠獲得的最大價值。例如 3 3的方格。1 3 3 2 1 3 2 2 1 能夠獲得的最大價值為 11。input...