給定乙個n*m的矩陣a,求a中的乙個非空子矩陣,使這個子矩陣中的元素和最大。
其中,a的子矩陣指在a中行和列均連續的一塊。
輸入的第一行包含兩個整數n, m,分別表示矩陣a的行數和列數。
接下來n行,每行m個整數,表示矩陣a。
輸出一行,包含乙個整數,表示a中最大的子矩陣中的元素和。
3 3-1 -4 3
3 4 -1
-5 -2 8
#include
#define ll long long
#define mem(a) memset(a,0,sizeof(a))
#define n 1000000007
#define pi acos(-1)
int f[
550]
[550];
int p[
550]
;int dp[
550]
;intfi(
int n)
return ans;
}int
main()
}int maxsum = f[1]
[1];
for(
int i =
1; i <= n; i++)}
printf
("%d\n"
, maxsum)
;return0;
}
最大子陣 C
problem description 給定乙個 n m 的矩陣a,求 a 中的乙個非空子矩陣,使這個子矩陣中的元素和最大。其中,a 的子矩陣指在 a 中行和列均連續的一部分。輸入的第一行包含兩個整數 n,m 1 n,m 50 分別表示矩陣 a 的行數和列數。接下來 n 行,每行 m 個整數,表示矩...
矩陣最大子陣
樣例輸入 332 41 1214 22 樣例輸出 6 1,暴力列舉,直接卡主上下左右邊界 include using namespace std int a 55 55 intmain 前四層迴圈卡住矩陣上下左右,後兩個遍歷求和 for int i 1 i n i if t ans ans t co...
最大子陣和
解題思路 首先,考慮一維的情況。a1,a2,a3,an的最大子串行和。我們維護乙個 最大字首和 當這個字首和小於0的時候,就替換為當前值,那麼最大值一定在這些字首和中。然後對於二維的情況,我們列舉可能的起始列標,這樣就是一維的最大子串行和的問題了。例如,當我們選定第一列和第三列後,把每一行第一列到第...