NYOJ 104 最大子矩陣(二維DP)

2021-09-06 22:05:08 字數 897 閱讀 7489

時間限制:

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

輸出輸出矩陣的最大子矩陣的元素之和。

例子輸入

1

4 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 ...