51 nod 1083 矩陣取數問題

2021-08-20 13:26:31 字數 1224 閱讀 4925

1083 矩陣取數問題

基準時間限制:1 秒 空間限制:131072 kb 分值: 5 

難度:1級演算法題

乙個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 <= n[i] <= 10000)

output

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

3

1 3 3

2 1 3

2 2 1

output示例

11

理解:

簡單的dp思想

從左上角走到右下角,每次考慮右邊和下邊的數,取較大的值,用二維陣列儲存下每一步走過後的值。

放**:(先放乙個wa的...)

#include #include #include #include #include #include using namespace std;

int a[550][550],dp[550][550];

int main()

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

}return 0;

}

其實第二個**還有另一種改法

把陣列開小一點 即 550 改為 510 也能ac

(雖然還是有越界 但是不會wa 有能大佬解釋下嗎?    感謝(>^ω^<) )

這也是ac**:

#include #include #include #include #include #include using namespace std;

int a[510][510],dp[510][510];

int main()

{ int n,i,j;

while (~scanf("%d",&n))

{memset(dp,0,sizeof(dp));

// memset(a,0,sizeof a);

for (i=0; i

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...