HDU 1181 变形课

http://acm.hdu.edu.cn/showproblem.php?pid=1181

直接bfs,等号写成赋值了,wa两次。。。

View Code
#include <stdio.h>

#include <string.h>

char s[200];

char graph[50][50];

char vis[50];

int q[50];

int bfs()

{

    int front=0,rear=1;

    int ch,i;

    q[0]=1;

    while(front<rear)

    {

        ch=q[front++];

        if(ch=='m'-'a')return 1;

        for(i=0;i<26;i++)

        {

            if(graph[ch][i]&&vis[i]==0)

            {

                vis[i]=1;

                q[rear++]=i;

            }

        }

    }

    return 0;

}

int main()

{

    while(gets(s))

    {

        if(strcmp(s,"0")==0)

        {

            printf(bfs()?"Yes.\n":"No.\n");

            memset(graph,0,sizeof(graph));

            memset(vis,0,sizeof(vis));

        }

        else

            graph[s[0]-'a'][s[strlen(s)-1]-'a']=1;

    }

    return 0;

}

 

你可能感兴趣的:(HDU)