HDU 1181

题意:中文题,就是爽!

AC代码:

#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <math.h>
#define INF 0x3f3f3f3f
using namespace std;
char s[500];
char s1[4000][400];
int dis[4000],k1,f;
void dfs(int x)
{
    int l=strlen(s1[x]);
    char z=s1[x][l-1];
    if(z=='m')
    {
        f=1;
        return ;
    }
    for(int i=0; i<k1; i++)
    {
        if(dis[i]==0&&s1[i][0]==z)
        {
            dis[i]=1;
            dfs(i);
        }
    }
    return ;
}
int main()
{

    while(~scanf("%s",s))
    {
        k1=0;
        f=0;
        if(strcmp(s,"0")==0)
        {
            break;
        }
        while(~scanf("%s",s))
        {
            if(strcmp(s,"0")==0)
            {
                break;
            }
            else
            {
                strcpy(s1[k1++],s);
            }
        }
        memset(dis,0,sizeof(dis));
        int ans=0;
        for(int i=0; i<k1; i++)
        {
            if(s1[i][0]=='b'&&dis[i]==0)
            {
                dis[i]=1;
                dfs(i);
            }
        }
        if(f==1)
        {
            printf("Yes.
");
        }
        else
        {
            printf("No.
");
        }
    }
    return 0;
}
View Code
原文地址:https://www.cnblogs.com/qioalu/p/4903269.html