现在的位置: 首页 > 综合 > 正文

hdu 1181 变形课 dfs

2013年08月09日 ⁄ 综合 ⁄ 共 599字 ⁄ 字号 评论关闭

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

 

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;

char sc[26][26],mark[26];  ///这个地方很巧哦
char a[10000][50];
int flag;

void DFS(int x)
{
    if(x==12) {flag=1; return ;}
    mark[x]=1;

    for(int j=0;j<26;j++)
    {
        if(sc[x][j]&&!mark[j])
        {
            DFS(j);
        }
    }
}

int main()
{
    int i=0;
    flag=0;
    while(scanf("%s",a[i])!=EOF)
    {

        if(a[i][0]=='0')
        {

           DFS(1);
///这个是从b开始哦。
           if(flag)
           {
               cout<<"Yes."<<endl;
           }
           else cout<<"No."<<endl;
           i=0;

           memset(a,'0',sizeof(a));
           memset(sc,0,sizeof(sc));
           memset(mark,0,sizeof(mark));
           flag=0;
        }
        else {
            int b1=a[i][0]-'a';
            int k=strlen(a[i]);
            int b2=a[i][k-1]-'a';
            sc[b1][b2]=1;
         i++;
        }

    }
    return 0;
}

 

抱歉!评论已关闭.