poj 1050 题解:
#include<iostream>
#include<string.h>
int v[110][110],sum[110];
int main()
{
int n,i,j,k,l,smax;
while(cin >>n)
{
for(i = 0;i < n;i++)
for(j = 0;j < n;j++)
cin >>v[i][j];
smax = 0;
for(i = 0;i < n;i++)
{
memset(sum,0,sizeof(sum));
for(j = i;j < n;j++)
{
for(k = 0;k < n;k++)
sum[k] = v[j][k];
int b = 0;
for(l = 0;l < n;l++)
{
if(b > 0) b += sum[l];
else b = sum[l];
if(b > smax) smax = b;
}
}
}
cout <<smax<<endl;
}
return 0;
}
好算法!!!