#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N = 20010;
int n,m,q;
int p[N];//父节点
int find(int x)//祖宗结点
{
if(p[x] != x) p[x] = find(p[x]);
return p[x];
}
int main()
{
cin >> n >> m;
for(int i = 1;i <= n;i ++)
{
p[i] = i; //初始化每个点都是祖宗节点
}
while(m --)//构造亲戚关系,即大家的祖先相同,即为亲戚
{
int a,b;
scanf("%d%d",&a,&b);
p[find(a)] = find(b);
}
cin >> q;
while(q --)
{
int a,b;
scanf("%d%d",&a,&b);
if(find(a) == find(b)) puts("Yes");
else puts("No");
}
return 0;
}
AcWing1249.亲戚(并查集)
最新推荐文章于 2024-10-05 21:10:28 发布