题解 P2256 【一中校运会之百米跑】
map容器+string类
STL大法好!!!
附代码
include<stdio.h>
include<iostream>
using namespace std; const int MaxN(20002); map < string , int > Name; string s,t; int Fa[MaxN]; int gfather(int x) { if(Fa[x]!=x) return Fa[x]=gfather(Fa[x]); return x; } void Union(int x,int y) { int f1(gfather(x)),f2(gfather(y)); Fa[f1]=f2; } int main() { int N,M,K,i; scanf("%d%d",&N,&M); for(i=1;i<=N;i++) { cin>>s; Name[s]=i; Fa[i]=i; } for(i=1;i<=M;i++) { cin>>s>>t; Union(Name[s],Name[t]); } scanf("%d",&K); for(i=1;i<=K;i++) { cin>>s>>t; if(gfather(Name[s])==gfather(Name[t])) printf("Yes.\n"); else printf("No.\n"); } return 0; }