#include<algorithm> #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> using namespace std; int a[100][100]; int MaxSum(int n, int *a) { int sum = 0, b = 0; for(int i=1; i<=n; i++) { if(b > 0) b += a[i]; else b = a[i]; if(b > sum)sum = b; } return sum; } int MaxSum2(int m, int n) { int sum = 0; int *b = new int[n+1]; for(int i=0; i<=m; i++ ) { for(int k=0; k<=n; k++)b[k] = 0; for(int j=i; j<=m; j++){ for(int k=1; k<n; k++) b[k] +=a[j][k]; int max = MaxSum(n,b); if(max > sum)sum = max; } } return sum; } int main() { int N; scanf("%d",&N); memset(a,0, sizeof(a)); for(int i=1; i<=N; i++) for(int j=1; j<=N; j++) scanf("%d", &a[i][j]); int sum = MaxSum2(N,N); printf("%d\n",sum); system("pause"); return 0; } 点击打开链接