乙個n*n矩陣中有不同的正整數,經過這個格仔,就能獲得相應價值的獎勵,從左上走到右下,只能向下向右走,求能夠獲得的最大價值。
例如:3 * 3的方格。
1 3 3
2 1 3
2 2 1
能夠獲得的最大價值為:11。
input
第1行:n,n為矩陣的大小。(2 <= n <= 500)output第2 - n + 1行:每行n個數,中間用空格隔開,對應格仔中獎勵的價值。(1 <= n[i] <= 10000)
輸出能夠獲得的最大價值。input示例
3output示例1 3 3
2 1 3
2 2 1
11
狀態轉移方程:f(i,j) = max;//
不知道為什麼這個不能跟前面的map一起定義。。。
for(i=0;i)
for(j=0;j)
dp[i][j]=max(dp[i-1][j],dp[i][j-1])+map[i][j];
printf(
"%d\n
",dp[n-1][n-1
]); }
return0;
}
51nod 更難的矩陣取數問題 滾動陣列優化
這裡要求要走到終點再走回來,可以轉化為兩個人走。那麼我們可以先粗暴的設f x1 y1 x2 y2 為第乙個人走到 x1,y1 第二個人走到 x2,y2 的最大價值。那麼這樣空間會很大,通過觀察可以發現,乙個走的步數 橫座標 縱座標,因為走一步一定是橫座標 或者縱座標 1.那麼我們就可以轉化為f st...
51nod 教程 0 1揹包問題(動態規劃)
有n件物品,第i件物品 i 1,2,3 n 的價值是vi,重量是wi,我們有乙個能承重為m的揹包,我們選擇一些物品放入揹包,顯然放入揹包的總重量不超過m。我們要求選擇物品的總價值最大,請問如何選擇?這裡我們假設所有出現的數都是正整數。第一想法是?1 列舉?萬能的列舉啊。但對於n件物品,每件都可以選擇...
51 Nod 最大子矩陣和
1051 最大子矩陣和 基準時間限制 2 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 乙個m n的矩陣,找到此矩陣的乙個子矩陣,並且這個子矩陣的元素的和是最大的,輸出這個最大的值。例如 3 3的矩陣 1 3 1 2 1 3 3 1 2 和最大的子矩陣是 3 1 1 3 1 2i...