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; }
本人还是新手 ,转载请注明来自Lvsi‘s home