题解
2025-11-16 17:35:46
发布于:广东
1阅读
0回复
0点赞
//连通分量
//fa[N]
//fa[i]:表示对于节点i,他的连通分量为fa[i];
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int fa[N];//记录连通分量
int find(int inx){
if(fa[inx]==inx)return inx;
return fa[inx]=find(fa[inx]);//递归寻找祖宗
}
int main(){
int n,m,p;
cin>>n>>m>>p;
for(int i=1;i<=n;i++)fa[i]=i;//初始默认全部都是孤儿,连通编号为自己
for(int i=1;i<=m;i++){
int a,b;
cin>>a>>b;
fa[find(a)]=find(b);//不同连通分量相互连通
}
for(int i=1;i<=p;i++){
int a,b;
cin>>a>>b;
if(find(a)==find(b)){
cout<<"Yes"<<endl;
}else{
cout<<"No"<<endl;
}
}
}
这里空空如也



有帮助,赞一个