变形课

 1 #include<iostream>
 2 using namespace std;
 3 char str[200][100];
 4 int flag[200];
 5 int t,i;
 6 void dfs(char temp)
 7 {
 8     int j;
 9     if(temp=='m')
10     {
11         t=1;
12         return;
13     }
14     for(j=0;j<i;j++)
15     {
16         if(str[j][0]==temp&&!flag[j])
17         {
18             int len=strlen(str[j]);
19             flag[j]=1;
20             dfs(str[j][len-1]);
21             flag[j]=0;
22         }
23     }
24 }
25 int main()
26 {
27     i=0;
28     while(gets(str[i]))
29     {
30         if(strcmp(str[i],"0")==0)
31         {
32             memset(flag,0,sizeof(flag));
33             t=0;
34             dfs('b');
35             if(t==1)
36                 printf("Yes.\n");
37             else
38                 printf("No.\n");
39             i=0;
40         }
41         i++;
42     }
43     return 0;
44 }

这是我第二个深搜题,感觉自己做起来还是有那点难以开始,因为自己也写了这个题目的代码,可交了很多次,依然过不了,到最后也没搞明白,没办法,只能参考了,觉得这个代码超像模版的,写的不错,自己还是需要加油啊
!!

posted @ 2012-06-23 23:15  欧阳生朵  阅读(199)  评论(0编辑  收藏  举报