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