我用的一维动规140MS
但是还是有人比我快15MS 是不是有二维动规的算法呢
但是还是有人比我快15MS 是不是有二维动规的算法呢
#include<stdio.h>
#include<string.h>
int n, i, j, k, mxa;
int f[201][201];
int main()
{
while(scanf("%d",&n)==1)
{
mxa=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&f[i][j]);
for(i=0;i<n;i++)
{
int a[201]={0};
for(j=i;j<n;j++)
{
int hsum=0,hmxa=0;
for(k=0;k<n;k++)
{
a[k]+=f[j][k];
if(hmxa>0)hmxa+=a[k];
else hmxa=a[k];
if(hsum<hmxa)hsum=hmxa;
}
if(mxa<hsum)mxa=hsum;
}
}
printf("%d\n",mxa);
}
return 0;
}
#include<string.h>
int n, i, j, k, mxa;
int f[201][201];
int main()
{
while(scanf("%d",&n)==1)
{
mxa=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&f[i][j]);
for(i=0;i<n;i++)
{
int a[201]={0};
for(j=i;j<n;j++)
{
int hsum=0,hmxa=0;
for(k=0;k<n;k++)
{
a[k]+=f[j][k];
if(hmxa>0)hmxa+=a[k];
else hmxa=a[k];
if(hsum<hmxa)hsum=hmxa;
}
if(mxa<hsum)mxa=hsum;
}
}
printf("%d\n",mxa);
}
return 0;
}