NUAA 1018

我用的一维动规140MS
但是还是有人比我快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 ;
}

你可能感兴趣的:(uaa)