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行的矩陣合併為乙個一維陣列,即把每列對應的數相加,那麼這個一維陣列的最大子段和...