時間限制:
1000 ms | 記憶體限制:
65535 kb
難度:5
描寫敘述
給定乙個由整數組成二維矩陣(r*c),如今須要找出它的乙個子矩陣,使得這個子矩陣內的全部元素之和最大,並把這個子矩陣稱為最大子矩陣。
樣例:0 -2 -7 0
9 2 -6 2
-4 1 -4 1
-1 8 0 -2
其最大子矩陣為:
9 2
-4 1
-1 8
其元素總和為15。
輸入
第一行輸入乙個整數n(0
輸出輸出矩陣的最大子矩陣的元素之和。
例子輸入
14 40 -2 -7 0
9 2 -6 2
-4 1 -4 1
-1 8 0 -2
例子輸出
15
#include#includeusing namespace std;
#define n 110
int a[n][n];
int b[n];
int main()
int max=a[1][1];
for(i=0;i<=r-1;++i)
for(j=i+1;j<=r;++j)
{ memset(b,0,sizeof(b));
for(k=1;k<=c;++k)
{ if(b[k-1]>=0)
b[k]=b[k-1]+a[j][k]-a[i][k];
else
b[k]=a[j][k]-a[i][k];
if(max
最大子矩陣 NYOJ104
給定乙個由整數組成二維矩陣 r c 現在需要找出它的乙個子矩陣,使得這個子矩陣內的所有元素之和最大,並把這個子矩陣稱為最大子矩陣。這個問題就是最大值子區間和的二維問題。一維問題的解決思路是,max sum表示從第一數到目前的最大和,sum是某段區間的和,如果sum 0,那麼sum沒有利用價值了,把s...
NYOJ 104 最大子矩陣和
此 在全為 2時,輸出0,顯然錯誤,因為函式下標從0開始,而傳遞的引數希望他從1開始 include include int a 101 101 b 10010 int subsequencesum int a,int n return maxsum int main max subsequence...
NYOJ104 最大和(dp 求最大子矩陣)
時間限制 1000 ms 記憶體限制 65535 kb 難度 5 描述 給定乙個由整數組成二維矩陣 r c 現在需要找出它的乙個子矩陣,使得這個子矩陣內的所有元素之和最大,並把這個子矩陣稱為最大子矩陣。例子 0 2 7 0 9 2 6 2 4 1 4 1 1 8 0 2 其最大子矩陣為 9 2 4 ...