poj 1050 nyoj104 矩陣最大和

2021-06-10 20:12:01 字數 642 閱讀 6562

給定乙個由整數組成二維矩陣(r*c),現在需要找出它的乙個子矩陣,使得這個子矩陣內的所有元素之和最大,並把這個子矩陣稱為最大子矩陣。

例子:0 -2 -7 0

9 2 -6 2

-4 1 -4 1

-1 8 0 -2

其最大子矩陣為:

9 2

-4 1

-1 8

其元素總和為15。

輸入

第一行輸入乙個整數n(0

輸出 輸出矩陣的最大子矩陣的元素之和。

思路:拆分為一維陣列,然後根據動態規劃求一段資料的最大和。ac**:

#include

#include

#include

#include

using namespace std;

int a[110][110],f[10100],row,column,max,sum;

int main()

for(i=1;i<=column;++i)

for(j=i;j<=column;++j)

if(i==j)

}else if(i!=j)

}cout<}// system("pause");

return 0;

}

最大子矩陣 NYOJ104

給定乙個由整數組成二維矩陣 r c 現在需要找出它的乙個子矩陣,使得這個子矩陣內的所有元素之和最大,並把這個子矩陣稱為最大子矩陣。這個問題就是最大值子區間和的二維問題。一維問題的解決思路是,max sum表示從第一數到目前的最大和,sum是某段區間的和,如果sum 0,那麼sum沒有利用價值了,把s...

POJ 1050 To the Max(最大矩陣)

和序列中無長度限制的最大子段和相同,如果當前的sum 0,那麼它還有一定的價值,所以繼續往上累加 如果當前sum 0,即sum不僅沒有價值,反而會使後面的和更小,所以將sum重置為0為最優。矩陣中維護每一列上的字首和,列舉所選矩陣上限i,下限j,列舉列數k,重複上述過程,記錄整個過程中的最大值即為答...

NYOJ 104 最大子矩陣和

此 在全為 2時,輸出0,顯然錯誤,因為函式下標從0開始,而傳遞的引數希望他從1開始 include include int a 101 101 b 10010 int subsequencesum int a,int n return maxsum int main max subsequence...