hdu 1181 dfs

hdu 1181 dfs
#include<iostream>
using namespace std;

const int maxn = 10000;
struct mess{
char start,end;
};
struct mess M[maxn];
int visted[maxn];
bool flag ;
int n;
void dfs(char ch)
{
if(flag)
return ;
if(ch == 'm')
{
flag = true;
//printf("sdasdasd");
return ;
}
int i,j;
for(i = 0; i <n;i++)
{
if(M[i].start == ch && visted[i]== 0)
{
visted[i] = 1;
dfs(M[i].end);
visted[i] = 0;
}
}
}
int main()
{
    //freopen("out.txt","w",stdout);
    int i,len;
    char str[100];
while(scanf("%s",str)!=EOF)
{
flag = false; i = 0;
memset(visted,0,sizeof(visted));
while(strcmp(str,"0")!=0)
{
len = strlen(str);
M[i].start = str[0];
M[i].end = str[len-1];
i++;scanf("%s",str);
//printf("%d",strlen(str));
}
n = i;//n= i-1; 最后发现错误在这里
dfs('b');
printf(flag?"Yes.\n":"No.\n");
}
    return 0;
}

你可能感兴趣的:(hdu 1181 dfs)