時間限制: 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。在今年的資料...