https://www.luogu.org/problemnew/show/P1551
并查集模板题
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
const int N=100005;
int n,m,t,a,b,f[N],g[N];
char c;
int find(int x){
if(f[x]==0)
return x;
return f[x]=find(f[x]);
}
void man(int a,int b){
int x=find(a);
int y=find(b);
if(x!=y)
f[x]=y;
}
int main()
{
scanf("%d%d%d",&n,&m,&t);
for(int i=1;i<=m;i++){
scanf("%d%d",&a,&b);
man(a,b);
}
for(int i=1;i<=t;i++){
scanf("%d%d",&a,&b);
if(find(a)==find(b)) printf("Yes\n");
else printf("No\n");
}
return 0;
}