HDO 1181 变形课

深搜

#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
struct node
{
    int u,v;
}p[100010];
int book[10010];
int l,flag;
char a[100];
void dfs(char c)
{
    if(c=='m')
    {
        flag=1;
        return;
    }
    for(int i=0;i<l;i++)
    {
        if(!book[i]&&p[i].u==c)
        {
            book[i]=1;
            dfs(p[i].v);
            book[i]=0;
        }
    }
}
int main()
{
    while(~scanf("%s",a))
    {
        p[0].u=a[0];
        p[0].v=a[strlen(a)-1];
        for(l=1;;l++)
        {
            scanf("%s",a);
            if(a[0]=='0')
                break;
            p[l].u=a[0];
            p[l].v=a[strlen(a)-1];
        }
        flag=0;
        memset(book,0,sizeof(book));
        for(int i=0;i<l;i++)
        {

            if(p[i].u=='b')
            {
                book[i]=1;
                dfs(p[i].v);
            }
            if(flag)  break;
        }
        if(flag) printf("Yes.\n");
        else  printf("No.\n");
    }
    return 0;
}

发布了17 篇原创文章 · 获赞 3 · 访问量 526

猜你喜欢

转载自blog.csdn.net/RUBGH/article/details/104690350