题目链接:http://www.51nod.com/Challenge/Problem.html#problemId=1051
水题
#include<iostream>
#include<vector>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
int a[505][505];
int b[505];
int sum[505][505];
int n,m;
int lcsum(){
int rec[505];
int s=0;
rec[0]=0;
for(int i=1;i<=m;i++){
rec[i]=max(b[i],rec[i-1]+b[i]);
s=max(rec[i],s);
}
return s;
}
int main() {
int ans;
cin>>m>>n;
memset(sum,0,sizeof(sum));
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
sum[i][j]=a[i][j]+sum[i-1][j];
}
}
ans=0;
for(int i=0;i<n;i++){
for(int j=i+1;j<=n;j++){
for(int k=1;k<=m;k++){
b[k]=sum[j][k]-sum[i][k];
}
ans=max(ans,lcsum());
}
}
cout<<ans<<endl;
return 0;
}