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开发工程师 阅读(452) 评论(0) 收藏 举报
浙公网安备 33010602011771号