hdu 1181(dfs)变形课
#include<stdio.h> #include<string.h> int visited[1000],n,flag; char a[1000][3]; void dfs(char str) { int i; char temp; if(str=='m') { flag=1; return ; } for(i=1;i<=n;i++) { if(flag==1) break; if(visited[i]==0&&a[i][1]==str) { temp=str; visited[i]=-1; str=a[i][2]; dfs(str); visited[i]=0; str=temp; } } } int main() { int len; char b[100],temp='b'; n=0; while(scanf("%s",b)!=EOF) { if(b[0]=='\0') break; if(b[0]=='0') { flag=0; dfs(temp); if(flag!=0) printf("Yes.\n"); else printf("No.\n"); n=0; } else { n++; visited[n]=0; a[n][1]=b[0]; len=strlen(b); a[n][2]=b[len-1]; } } return 0; }
思路:深搜的思想,比较简单的dfs,注意下如果就一个单词:bim的话输出的是yes.。
代码实现:
posted on 2013-03-06 22:01 后端bug开发工程师 阅读(443) 评论(0) 编辑 收藏 举报