2058 Problem E 最大子矩陣

2021-09-02 14:05:16 字數 1269 閱讀 6787

時間限制: 1 sec  記憶體限制: 32 mb

提交: 61  解決: 25

[提交][狀態][討論版][命題人:外部匯入]

已知矩陣的大小定義為矩陣中所有元素的和。給定乙個矩陣,你的任務是找到最大的非空(大小至少是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個整數……)給出矩陣中的n2個整數,整數之間由空白字元分隔(空格或者空行)。

已知矩陣中整數的範圍都在[-127, 127]。

測試資料可能有多組,對於每組測試資料,輸出最大子矩陣的大小。

1

27 3

-40 29 -16

38 18 22

24 -35 5

27

78

#include#includeusing namespace std;

//最大連續子串行和的二維問題,動態規劃解決

//因為每一行的最大子矩陣不確定由哪幾列構成,dp二維陣列寫法不需要且不可行

int main() , ans = -1e9;

for (int i = 1; i <= n; i++)

} //列舉前k行,第i+1列至第j列(i,j]的和,得出最大值ans

for (int i = 0; i <= n; i++)

}} cout << ans << endl;

} return 0;

}

#include#includeusing namespace std;

//嘗試了一下使用dp二維陣列,不需要且不可行

//因為每一行的最大子矩陣不確定由哪幾列構成

int main() , ans = 1e-9;

for (int i = 1; i <= n; i++)

} for (int i = 0; i < n; i++)

}} cout << ans << endl;

} return 0;

}

最大子段和 最大子矩陣和

給出n個整數序列 可能為負數 組成的序列a1,a2,an,求該序列形如 的子段和的最大值。當所有整數均為負數時,定義最大子段和為0。多測試用例。每個測試用例佔2行 第一行是序列的個數n 0 n 10000 第二行是n個整數。為每個測試用例輸出一行結果 最大子段和。6 2 11 4 13 5 2 31...

最大子矩形

80 引數約定 0糖果盒 candy box 問題描述 乙個被分為 n m 個格仔的糖果盒,第 i 行第 j 列位置的格仔裡面有 a i j 顆糖。本來 tenshi 打算送這盒糖果給某 ppmm 的,但是就在要送出糖果盒的前一天晚上,乙隻極其可惡的老鼠夜襲糖果盒,有部分格仔被洗劫並且穿了洞。ten...

最大子串行

模板 int maxsubsequence const int a,int n return maxsum 複雜度on 給定k個整數的序列,其任意連續子串行可表示為,其中 1 i j k。最大連續子串行是所有連續子串行中元素和最大的乙個,例如給定序列,其最大連續子串行為,最大和 為20。在今年的資料...