这题目数据比较水,反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 ",d[mp[s]],d[mp[s1]],num); } k=0; for(i=1;i<=num;i++) { if(!d[i]) k++; // printf("%d %d ",d[i],k); } if(k==1) printf("Yes "); else printf("No "); } return 0; }