求最大子矩陣(子矩陣無大小要求)dp

2021-07-16 18:33:11 字數 1004 閱讀 1158

總時間限制: 

1000ms 

記憶體限制: 

65536kb

描述 已知矩陣的大小定義為矩陣中所有元素的和。給定乙個矩陣,你的任務是找到最大的非空(大小至少是1 * 1)子矩陣。

比如,如下4 * 4的矩陣

0 -2 -7 0

9 2 -6 2

-4 1 -4 1

-1 8 0 -2

的最大子矩陣是

9 2-4 1

-1 8

這個子矩陣的大小是15。

輸入輸入是乙個n * n的矩陣。輸入的第一行給出n (0 < n <= 100)。再後面的若干行中,依次(首先從左到右給出第一行的n個整數,再從左到右給出第二行的n個整數……)給出矩陣中的n

2個整數,整數之間由空白字元分隔(空格或者空行)。已知矩陣中整數的範圍都在[-127, 127]。

輸出輸出最大子矩陣的大小。

樣例輸入

4

0 -2 -7 0 9 2 -6 2

-4 1 -4 1 -1

8 0 -2

樣例輸出

15

題意:把二維的問題轉化為一維的最大子串行問題

#include #include using namespace std;  

const int max = 101;

int value[max][max] = };

int submaxsum(int a, int n) //找到一維陣列中最大子串行

return sum;

}

int maxsum(int n)

}

return max;

} int main()

cout << maxsum(n);

return 0;

}

最大子矩陣(子矩陣大小固定)

e 最大子矩陣 time limit 10000msmemory limit 32768kb64bit io format i64d i64u submit status description 給你乙個m n的整數矩陣,在上面找乙個x y的子矩陣,使子矩陣中所有元素的和最大。input 輸入資料的...

求最大子矩陣的大小

給定乙個整型矩陣map,其中的值只有0和1兩種,求其中全是1的所有矩形區域中,最大矩形區域為1的數量。時間複雜度達到o mn 具體思路請參考原書 include include include using namespace std intmaxrecfrombottom int height,in...

求最大子矩陣的大小

題目 給定乙個整型矩陣map,其中的值只有0和1兩種,求其中全是1的所有矩陣區域中,最大的矩形區域為1的數量。思路 步驟1 矩陣的行數為n,以每一行做切割,統計以當前行作為底的情況下,每個位置往上的1的數量。使用高度陣列height來表示。例如 map 1 0 1 1 1 1 1 1 1 1 1 0...