51 nod 1051 最大子矩阵和

 1 #include <iostream>
 2 #include <cstring>
 3 using namespace std;
 4 int dp[600][600];
 5 long long  a[600];
 6 
 7 int main()
 8 {
 9     int n,m;
10     cin>>m>>n;
11     for(int i=0;i<n;i++){
12         for(int j=0;j<m;j++){
13             cin>>dp[i][j];
14         }
15     }
16     long long ans=0; 
17     for(int i=0;i<n;i++)
18     {
19         memset(a,0,sizeof(a));
20         for(int j=i;j<n;j++)
21         {
22             for(int k=0;k<m;k++)
23                 a[k]=(i==j?dp[i][k]:(a[k]+dp[j][k]));
24             long long sum=0;
25             for(int k=0;k<m;++k)
26             {
27                 sum=(sum+a[k]>0)?sum+a[k]:0;
28                 ans=max(ans,sum);
29             }
30         }
31     }
32     cout<<ans<<endl;
33     return 0;
34 }
View Code

猜你喜欢

转载自www.cnblogs.com/fjqfjq/p/9026975.html
今日推荐