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 }

 

posted @ 2012-07-21 19:29  _雨  阅读(236)  评论(0编辑  收藏  举报