这个并查集只会输出No了……
#include<bits/stdc++.h>
using namespace std;
int n,m,p,x,y,f[5005];
int find(int x){
if(f[x]==x)
return x;
return f[x]=find(f[x]);
}
void merge(int x,int y){
int fx=find(x),fy=find(y);
f[fy]=fx;
}
int main(){
//freopen("P1551.in","r",stdin);
//freopen("P1551.out","w",stdout);
scanf("%d%d%d",&n,&m,&p);
for(int i=1;i<=m;i++){
scanf("%d%d",&x,&y);
merge(x,y);
}
for(int i=1;i<=n;i++)
f[i]=i;
for(int i=1;i<=p;i++){
scanf("%d%d",&x,&y);
puts(find(x)==find(y)?"Yes":"No");
}
return 0;
}