hdu 2094

题目链接


这题目数据比较水,反EG:a b,b c,d e,e f,f e,

这题用并查集吧,我还不会呢

 

#include <cstdio>

#include <string>

#include <cstring>

#include <iostream>

#include <map>

using namespace std;

int main()

{

    int i,j,n,num,k,d[1005];

    char s[15],s1[15];

    map<string,int> mp;

    while(scanf("%d",&n),n)

    {

        mp.clear();

        memset(d,0,sizeof(d));

        num=0;

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

        {

            cin>>s>>s1;

            if(!mp[s])  mp[s]=++num; //num++ 会多偱环一次

            if(!mp[s1]) mp[s1]=++num;

            d[mp[s1]]=1;

          //  printf("%d %d %d\n",d[mp[s]],d[mp[s1]],num);

        }

        k=0;

        for(i=1;i<=num;i++)

        {

            if(!d[i]) k++;

          //  printf("%d %d\n",d[i],k);

        }

        if(k==1) printf("Yes\n");

        else printf("No\n");

    }

    return 0;

}


 

 

你可能感兴趣的:(HDU)