hdu变形课(dfs)

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

一次AC 没什么细节要注意 就是输入正确 加上dfs 可以 了

View Code
 1 #include<stdio.h>

 2 #include<string.h>

 3 typedef struct node

 4 {

 5     char c[101];

 6     int f;

 7 }st;

 8 st q[1001];

 9 int flag;

10 void dfs(int x,int n)

11 {

12     int i,j;

13     if(flag)

14         return ;

15     if(q[x].c[strlen(q[x].c)-1]=='m')

16     {

17         flag = 1;

18     }

19     else

20     {

21         for(i = 1; i <= n ; i++)

22         {

23             if(!q[i].f&&q[i].c[0]==q[x].c[strlen(q[x].c)-1])

24             {

25                 q[i].f = 1;

26                 dfs(i,n);

27             }

28         }

29     }

30 }

31 int main()

32 {

33     int j,k=1,num[1001],i=1;

34     while(gets(q[1].c)!=NULL)

35     {        

36         int g = 0;

37         flag = 0;

38         q[1].f = 0;        

39         if(q[1].c[0]=='b')

40             num[g++] = 1;

41         i=2;

42         while(gets(q[i].c)!=NULL)

43         {

44             q[i].f = 0;

45             if(q[i].c[0]=='b')

46             num[g++] = i;

47             if(strcmp(q[i].c,"0")==0)

48                 break;

49             i++;

50         }

51         for(j = 0; j < g ; j++)

52         {

53             if(!q[j].f)

54             {

55                 q[j].f = 1;

56                 dfs(num[j],i-1);

57             }

58             if(flag)

59                 break;

60         }

61         if(flag)

62             printf("Yes.\n");

63         else

64             printf("No.\n");

65     }

66     return 0;

67 }

 下面这个代码居然也能过。。。这。。。。

 1 #include<iostream>

 2 using namespace std;

 3 char ss[10];

 4 int main(){

 5     int flag=1;

 6     while(gets(ss)){

 7         if (strcmp(ss,"0")==0){

 8             if (flag){

 9                 printf("Yes.\n");

10                 flag=0;

11             }

12             else

13                 printf("No.\n");

14         }

15     }

16     return 0;

17 }

 

你可能感兴趣的:(HDU)