#include<stdio.h>
#include<string.h>
char se[100];
int change[30][30];
int mark[30][30];
int dfs(int n)
{
if(n==12)
{
return 1;
}
for(int i=0;i<26;i++)
{
if(change[n][i]==1&&mark[n][i]==0)
{
mark[n][i]=1;
if(dfs(i)==1)
{
return 1;
}
}
}
return -1;
}
int main()
{
while(scanf("%s",se)!=EOF)
{
int t;
memset(change,0,sizeof(change));
memset(mark,0,sizeof(mark));
if(se[0]!='0')
{
t=strlen(se);
change[se[0]-'a'][se[t-1]-'a']=1;
while(1)
{
scanf("%s",se);
if(se[0]=='0')
{
break;
}
t=strlen(se);
change[se[0]-'a'][se[t-1]-'a']=1;
}
}
if(dfs(1)==1)
{
puts("Yes.");
}
else
{
puts("No.");
}
}
}
Hdu1181 - 变形课 - 深度优先搜索
最新推荐文章于 2023-10-10 18:48:59 发布