并查集
2025-12-04 14:58:01
发布于:浙江
4阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int n,m,p,f[5005];
int _find(int x){
if(f[x]==x)return x;
return _find(f[x]);
}
void change(int x,int y){
f[_find(x)]=_find(y);
}
int main(){
cin>>n>>m>>p;
for(int i=1;i<=n;i++)f[i]=i;
for(int i=1;i<=m;i++){
int u,v;cin>>u>>v;
if(_find(u)!=_find(v))change(u,v);
}
while(p--){
int x,y;cin>>x>>y;
if(_find(x)==_find(y)){
cout<<"Yes"<<endl;
}
else cout<<"No"<<endl;
}
return 0;
}
这里空空如也






有帮助,赞一个