题目:P2256
#include<bits/stdc++.h>
using namespace std;
string s,ss;
char c;
map<string,string> a;
string find(string s){
if(s==a[s]){
return s;
}
return a[s]=find(a[s]);
}
void join(string x,string y){
if(find(x)!=find(y))
a[x]=y;
}
int main(){
int n,m,p;
cin>>n>>p;
for(int i=0;i<n;i++){
string aaaa;
cin>>aaaa;
a[aaaa]=aaaa;
}
for(int i=0;i<p;i++){
string aa,bb;
cin>>aa>>bb;
if(find(aa)!=find(bb)){
join(aa,bb);
}
}
cin>>m;
for(int i=0;i<m;i++){
string aa,bb;
cin>>aa>>bb;
if(find(aa)==find(bb)){
cout<<"Yes.";
}
else{
cout<<"No.";
}
cout<<"\n";
}
system("pause");
return 0;
}