@fuheimao
2017-07-22T11:22:30.000000Z
字数 1204
阅读 828
未分类
在此输入正文
#include<iostream>#include<cstring>using namespace std;int n;int a[101][101];int ss[101][101];//ss[i][j]表示第i列前j个的前缀和int k[101],s[101];int b[101][101];int main(){cin>>n;memset(b,0x3f,sizeof(b));for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)cin>>a[i][j];for(int i=1;i<=n;i++)ss[i][1]=a[1][i];for(int i=1;i<=n;i++)for(int j=2;j<=n;j++)ss[i][j]=ss[i][j-1]+a[j][i];for(int i=1;i<=n;i++)for(int j=1;j<=i;j++){for(int p=1;p<=n;p++){k[p]=ss[p][i]-ss[p][j-1];}s[1]=k[1];for(int p=2;p<=n;p++){s[p]=max(0,s[p-1])+k[p];}for(int p=1;p<=n;p++)if(b[i][p]>s[p])b[i][p]=s[p];}int maxn=0;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)maxn=maxn>b[i][j]?maxn:b[i][j];cout<<maxn;}
#include<iostream>#include<cstring>using namespace std;int n;int a[101][101];int ss[101][101];//ss[i][j]表示第i列前j个的前缀和int k[101],s[101];//int b[101][101];int main(){cin>>n;//memset(b,0x3f,sizeof(b));for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)cin>>a[i][j];//for(int i=1;i<=n;i++)// ss[i][1]=a[1][i];int maxn=0;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)ss[i][j]=ss[i][j-1]+a[j][i];for(int i=1;i<=n;i++)for(int j=1;j<=i;j++){for(int p=1;p<=n;p++){k[p]=ss[p][i]-ss[p][j-1];}s[1]=k[1];for(int p=2;p<=n;p++){s[p]=max(0,s[p-1])+k[p];}for(int p=1;p<=n;p++)maxn=max(s[p],maxn);}cout<<maxn;}