题解4.0!
2023-11-30 20:44:04
发布于:广东
29阅读
0回复
0点赞
#include <bits/stdc++.h>
#include <iostream>
#include <utility>		
using namespace std;
typedef long long ll;
const int N = 100001;
int n,m,p,a[N];
int find(int x){
	if(x==a[x]) return x;
	else return a[x]=find(a[x]);
}
void join(int x,int y){
	int xx=find(x);
	int yy=find(y);
	if(xx!=yy){
		a[xx]=yy;
	}
}
int main(){
	cin>>n>>m>>p;
	for(int i=1;i<=n;i++) a[i]=i;
	for(int i=1;i<=m;i++){
		int x,y;
		cin>>x>>y;
		join(x,y);	
	}
	for(int i=1;i<=p;i++)
	{
		int x,y;
		cin>>x>>y;
		if(find(x) == find(y)) cout<<"Yes"<<endl;
		else cout<<"No"<<endl;
	}
	return 0;
}
这里空空如也

有帮助,赞一个