1051 最大子矩陣和

2022-04-11 02:40:33 字數 1675 閱讀 2646

1051 最大子矩陣和

基準時間限制:2 秒 空間限制:131072 kb 分值: 40 難度:4級演算法題

乙個m*n的矩陣,找到此矩陣的乙個子矩陣,並且這個子矩陣的元素的和是最大的,輸出這個最大的值。

例如:3*3的矩陣:

-1 3 -1

2 -1 3

-3 1 2

和最大的子矩陣是:

3 -1

-1 3

1 2input

第1行:m和n,中間用空格隔開(2 <= m,n <= 500)。 第2 - n + 1行:矩陣中的元素,每行m個數,中間用空格隔開。(-10^9 <= m[i] <= 10^9)

output

輸出和的最大值。如果所有數都是負數,就輸出0。

input示例

3 3-1 3 -1

2 -1 3

-3 1 2

output示例

7//字首和,輕鬆解決n*n

1 # include 2 # include 3 # include 4 # include 5 # include 6 # include 7 # include 8 # include 9 # include 10 # include 11 # include 

12 # include 13 # include 14 # pragma comment(linker,"

/stack:102400000,102400000")

15using

namespace

std;

16 # define ll long

long

17# define pr pair

18# define mkp make_pair

19 # define lowbit(x) ((x)&(-x))

20 # define pi acos(-1.0

)21 # define inf 0x3f3f3f3f3f3f3f3f

22 # define eps 1e-8

23 # define mod 1000000007

2425 inline int

scan()

28while(ch>='

0'&&ch<='9')

29return x*f;30}

31 inline void out(int

a) 33

if(a>=10) out(a/10

);34 putchar(a%10+'0'

);35

}36 # define n 505

37/*

************************

*/38

ll sum[n][n];

3940

intmain()

4151

}52 ll ans=0;53

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

54for (int j=i;j<=m;j++)

5562

}63 printf("

%lld\n

",ans);

64return0;

65 }

view code

最大子矩陣和 51nod 1051 最大子矩陣和

problem desciption 乙個m n的矩陣,找到此矩陣的乙個子矩陣,並且這個子矩陣的元素的和是最大的,輸出這個最大的值。例如 3 3的矩陣 1 3 1 2 1 3 3 1 2 和最大的子矩陣是 3 1 1 3 1 2input 第1行 m和n,中間用空格隔開 2 m,n 500 第2 n...

(DP)1051 最大子矩陣和

2 秒131,072 kb 20 分 3 級題 乙個m n的矩陣,找到此矩陣的乙個子矩陣,並且這個子矩陣的元素的和是最大的,輸出這個最大的值。例如 3 3的矩陣 1 3 1 2 1 3 3 1 2 和最大的子矩陣是 3 1 1 3 1 2收起 第1行 m和n,中間用空格隔開 2 m,n 500 第2...

51 nod1051 最大子矩陣和

1051 最大子矩陣和 基準時間限制 2 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 乙個m n的矩陣,找到此矩陣的乙個子矩陣,並且這個子矩陣的元素的和是最大的,輸出這個最大的值。例如 3 3的矩陣 1 3 1 2 1 3 3 1 2 和最大的子矩陣是 3 1 1 3 1 2 ...