LeeBlog

导航

HDU 2614 Beat

其实这题是一DFS的简单题,但是题目意思,是在让人蛋痛啊!

这题就是解决一个问题后,解决下一个问题的时间一定要比解决这题的多或者等于这题。。。。。

但那英文是在太难看;

第1个是第0个,时间为0,然后解决下一个。

代码如下

#include<stdio.h>
#include<string.h>
int n,des[20],max;
int num[20][20],N[20];
void DFS( int p,int val,int nu )
{
     int f = 0;
     for( int i = 1; i <= n; ++i )
     {
          if( !des[i] && ( num[p][i] >= val ) )
          {
              des[i] = 1;
              DFS( i,num[p][i],nu + 1 );
              des[i] = 0;
              f = 1;
          }
      }
      if( !f )
          if( nu > max )
              max = nu;
      return ;
 }
int main( )
{
    while( scanf( "%d",&n ) != EOF )
    {
           max = 0;
           memset( num,0,sizeof( num ) );
           memset( des,0,sizeof( des ) );
           for( int i = 1; i <= n; ++i )
                for( int j = 1; j <= n; ++j )
                     scanf( "%d",&num[i][j] );
           des[1] = 1;
           DFS( 1,0,1);
           printf( "%d\n",max );
           }
    return 0;
}

posted on 2011-05-09 19:03  LeeBlog  阅读(384)  评论(0编辑  收藏  举报