-
//zoj1074 To the Max
-
//Accepted 1074 C ++ 00:00.00 428K
-
#include <stdio.h>
-
#define INF 1000000
-
#define MAXN 100
-
#define MAXM 100
-
//最大子段和O(n)
-
int maxsum(int b[MAXN],int n)
-
{
-
int sum=-INF,ts=0;
-
for (int i=0; i<n; ++i){
-
if (ts>0) ts += b[i];
-
else ts = b[i];
-
if (ts>sum) sum = ts;
-
}
-
return sum;
-
}
-
//最大子阵和O(nm^2)
-
int maxsum2(int a[][MAXN],int m,int n)
-
{
-
int sum=-INF,ts;
-
int b[MAXN];
-
for (int i=0; i<m; ++i){
-
for (int k=0; k<n; ++k) b[k] = a[i][k];
-
for (int j=i+1; j<m; ++j){
-
for (int k=0; k<n; ++k) b[k] += a[j][k];
-
ts = maxsum(b,n);
-
if (ts>sum) sum = ts;
-
}
-
}
-
return sum;
-
}
-
-
int n;
-
void solve()
-
{
-
int a[MAXM][MAXN];
-
for (int i=0; i<n; ++i)
-
for (int j=0; j<n; ++j)
-
scanf ("%d",&a[i][j]);
-
printf ("%d/n",maxsum2(a,n,n));
-
}
-
-
int main()
-
{
-
#ifdef ONLINE_JUDGE
-
#else
-
freopen("1074.txt","r",stdin);
-
#endif
-
while (scanf("%d",&n)!=EOF)
-
solve();
-
#ifdef ONLINE_JUDGE
-
#else
-
fclose(stdin);
-
#endif
-
return 0;
-
}
zoj1074 To the Max
最新推荐文章于 2023-05-30 08:47:46 发布