最大子矩陣問題

2021-07-25 05:31:34 字數 666 閱讀 3859

thinking開始令pos1=1,pos2=1:先判斷pos1-pos2高度的每個格仔,取或者不取,得出一維也就是只有第一行的最大子矩陣。

然後pos2++,因為是要求連續子矩陣,那麼從第一行到第二行的子矩陣相加,就相當與只判斷一行,可以找出pos1=1到pos2=2也就是第一行到第二行且只取這兩行作為子矩陣的最大值,然後pos2再加1,則變成判斷包括第一行在內的三行,直到最後一行,然後pos1++,pos2=pos1,則從第二行開始又判斷只取一行的最大值,取兩行的最大值,如此迴圈,最後可以得出最大值。

題意:輸入例子: 4

0 -2 -7 0  9

2 -6 2

-4 1 -4 1 

-1 8 0 -2

輸出: 15

**:

#include using namespace std;

int map1[500][500];

int sum1[500][500];

int main()

sum1[pos2][i1]=max(sum1[pos2][i1-1]+t,t);

// cout <

if(sum1[pos2][i1]>maxn)maxn=sum1[pos2][i1];

}// cout << "從" << pos1 <

最大子矩陣和問題

給定乙個長度為n的一維的陣列matrix n 讓求其最大matrix i matrix i 1 matrix j sum問題?簡單演算法 窮舉法先預處理map n 表示從matrix 0 matrix n 的和 for int i 0 to n for int j i 1 to n int tmp ...

最大子矩陣問題 dp

e acmer 題意 給你乙個矩陣,求它的所有元素和最大的子矩陣.分析 我們只知道一維的情況就是經典的最大子段和.然而維數達到二維就變的複雜了.我們觀察資料範圍500,易想到n3 的演算法也能過.純暴力是n4 的方法 然後可以通過列舉其中一維,dp最後一維的方法求出.處理列上的和為字首和,然後列舉列...

最大子矩陣求和問題

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!給定乙個n n的矩陣,計算最大子矩陣和。思路 最大子段和問題可以用動態規劃在o n 內解決,該題可以借助最大子段和的解法來做。我們考慮第i行到第j行的子矩陣,可以將i j行的矩陣合併為乙個一維陣列,即把每列對應的數相加,那麼這個一維陣列的最大子段和...