poj 1050 動態規劃

2021-06-23 08:44:13 字數 467 閱讀 8207

題目:

求最長序列的和的拓展,有一維拓展到二維,

首先判斷每一行的最大值,然後記錄下最大的值,

再將然後,把第i行後的各行對應列的元素加到第i行的對應列元素,每加一行,就求一次最大欄位和,這樣就把子矩陣的多行壓縮為一行了,一行了就是最大欄位和了啊!

#include #include using namespace std;

int m[101][101];

int main()

{ int n,max,tmp;

while(scanf("%d",&n)!=eof)

{max=-1000;

for(int i=0;i0) tmp+=m[i][j];

else

tmp=m[i][j];

if(max0) tmp+=m[i][k];

else

tmp=m[i][k];

if(max

Poj 1050 動態規劃

題目大意 給乙個方矩陣,求解元素和最大的子矩陣。最終要求輸出最大和結果。題目分析 一位陣列的最大和通過動態規劃是很好解決的,利用如下遞推公式即可 dp i max 然而這是乙個二維的問題。一開始,按照動態規劃的思想,我期望把問題歸結為乙個最優子問題,但是失敗了。後來把問題規劃為一維陣列解決,是很好的...

poj1050 (最大子矩陣和)

首先要熟悉一下最大子段和 即最大連續子串的和 給一串數字,找到最大子段和的值。一般方法是dp,dp i 表示以a i 為結尾的最大子段和,那麼dp i max dp i 1 a i a i 即,當dp i 1 0時,dp i a i 否則dp i dp i 1 a i 有了一維的基礎,現在來看看矩陣...

poj1050最大子矩陣和

這篇是看了別人的報告寫的,就當是屢屢思路好了.題目大意。給定乙個n階矩陣 方陣 每個元素中存在乙個數字.任務就是求出乙個最大的子矩陣使得矩陣元素之間的和是最大的.n 100 1.矩陣a m n 的和可以直接 sum a i j i 0 to n 1 j 0 to n 1 還可以求出第i列的和p i ...