水题 8月九号

水题 8月九号

今天做了一天的水题

http://acm.hdu.edu.cn/showproblem.php?pid=1081

二维的最大子序列

int  data[ 1025 ][ 1025 ],value[ 1025 ];

int  maxFun( int  n)
{
    
int  max,result =  INT_MIN,i;
    
for (max  =   0 ,i  =   0  ; i  <  n ; i  ++ )
    {
        max 
+= value[i];
        
if (max  >  result)
            result 
=  max;
        
if (max  <   0 )
            max 
=   0 ;
    }
    
return  result;
}
using   namespace  std;
int  main()
{
//     freopen("in.txt","r",stdin);
     int  i,j,k,T,max,maxResult;
    
while (scanf( " %d " , & T) != EOF)
    {
        
        
for (i  =   0 ; i  <  T ; i  ++ )
            
for (j  =   0 ; j  <  T; j  ++ )
                scanf(
" %d " , & data[i][j]);
        max 
=   0 ; maxResult  =  INT_MIN;
        
for (i  =   0 ; i  <  T; i  ++ )
        {
            memset(value,
0 , sizeof (value));
            
for (j  =  i ; j  <  T ; j  ++ )
            {
                
for (k  =   0 ; k  <  T; k  ++ )
                    value[k] 
+= data[j][k];

                max 
=  maxFun(T);
                
if (max  >  maxResult)
                    maxResult 
=  max;
            }
        }
        printf(
" %d\n " ,maxResult);
    }
    
return   0 ;
}

http://acm.hdu.edu.cn/showproblem.php?pid=1062
字符串翻转
int  main()
{
    
int  T,i,len,j;
    
char  c,str[ 1000 ],result[ 1000 ];
    scanf(
" %d " , & T);
    getchar();
    
while (T -- )
    {
        gets(str);
        len 
=  strlen(str);
        
// strcpy(result," ");
         for (j  =   0 ,i  =   0  ; i  <  len; i  ++ )
        {
            
if (str[i]  ==   '   ' )
            {
                result[j] 
=   ' \0 ' ;
                printf(
" %s  " ,strrev(result));
                j 
=   0 ;
            }
            
else   if (i  ==  len  -   1 )
            {
                result[j
++ =  str[i];
                result[j] 
=   ' \0 ' ;
                printf(
" %s " ,strrev(result));
            }
            
else
            {
                result[j
++ =  str[i];
            }
        }
        printf(
" \n " );
    }
    
return   0 ;
}


http://acm.hdu.edu.cn/showproblem.php?pid=1060

这里是要用到 对于任意的数num 都可表示为  10^(a +b) 其中a>1 b < 1 且 10^b   的有效数字就是num 的有效数字
给出一个n 求n^n 的最开始的数
#include  < iostream >
#include 
< cmath >
using   namespace  std;
int  main()
{
    
int  m,n,i,ans;
    
double  a,b;
    scanf(
" %d " , & n);
    
for (i = 0 ;i < n;i ++ )
    {
        scanf(
" %d " , & m);
        
// a = m*log10(m*1.0);
        b = m * log10(m * 1.0 ) - (__int64)(m * log10(m * 1.0 ));
        b
= pow(( double ) 10 ,b);
        ans
= ( int )b;
        printf(
" %d %d\n " ,( int )a,ans);
    }

    
return   0 ;
}


你可能感兴趣的:(水题 8月九号)