FC并查集-1249. 亲戚
作者:
小花猪
,
2023-03-20 10:38:38
,
所有人可见
,
阅读 109
1249. 亲戚
#include <iostream>
using namespace std;
const int N = 2e5+10;
int p[N], n, m, q;
void init(){
for(int i=1; i<=n; i++) p[i] = i;
}
int find(int x){
if(p[x]!=x) p[x]=find(p[x]);
return p[x];
}
void merge(int a, int b){
p[find(b)] = find(a);
}
int main(){
scanf("%d%d",&n,&m);
init();
while(m--){
int p1, p2;
scanf("%d%d",&p1,&p2);
merge(p1, p2);
}
scanf("%d",&q);
while(q--){
int p1, p2;
scanf("%d%d",&p1,&p2);
if(find(p1)==find(p2)) printf("Yes\n");
else printf("No\n");
}
return 0;
}