求捞 0pts
查看原帖
求捞 0pts
1271316
违规用户名K&xs3Z^楼主2024/8/23 18:45
#include<bits/stdc++.h>
using namespace std;
const int N=1e1;
int n,m,q,fa[N];//存储每个元素的父
int x,y; 
//查询 x的根
int find(int x){
	//元素的父是自己找到了根 若不是 找父的根 
	if(fa[x]==x) return x;
	else return find(fa[x]);
} 
//若x与y不在一个集合中 合并到一个集合
void merge(int x,int y){
	int fx=find(x);
	int fy=find(y);
	if(fx!=fy){
		fa[fx]=fy;
	}
	return;
}  
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
 
	
	cin>>n>>m>>q;//存入数据 
	
	//初始化 每个元素是一个独立结点
	for(int i=1;i<=n;i++)fa[i]=i;
		
	for(int i=1;i<=m;i++){
		cin>>x>>y;
		merge(x,y);
	}
	for(int i=1;i<=q;i++){
		cin>>x>>y;
		if(find(x)==find(y))cout<<"Yes"<<endl;
		else cout<<"No"<<endl;
	}
	return 0;
}
2024/8/23 18:45
加载中...