hdu1181(深搜 存有向图(用矩阵))
//也可以用生成树的思想做,但要注意是有向边
//生成树的做法:http://blog.sina.com.cn/s/blog_64107d290100h59k.html
#include<stdio.h>
#include<string.h>
int s,e,flag;
int vis[10009],map[1009][1009];
void dfs(int a)
{ int i;
if(a==e) flag=1;
if(flag) return;
vis[a]=1;
for(i=0;i<26;i++)
{
if(map[a][i]&&!vis[i])
dfs(i);
}
}
int main()
{ char str[10009];
while(scanf("%s",&str)!=EOF)
{
s=1;e=12;
if(str[0]!='0')
{
map[str[0]-'a'][str[strlen(str)-1]-'a']=1;
//用map来存有向图(用矩阵的形式,若a->b则map[a][b]=1)
}
else
{
dfs(1);
if(flag==1) printf("Yes.\n");
else printf("No.\n");
memset(map,0,sizeof(map));
memset(vis,0,sizeof(vis));
flag=0;
}
}
}

浙公网安备 33010602011771号