文章

211

粉丝

0

获赞

969

访问

32.9k

头像
并查集 题解:
P1586
发布于2026年3月2日 18:36
阅读数 72

#include<bits/stdc++.h>
using namespace std;

int fa[10005];

int find(int x) {
     if(x == fa[x]) 
		 return x;
     fa[x] = find(fa[x]); //路径压缩
     return fa[x];
}
int main(){
	int n,m;
	cin >> n >> m;
	int zi,xi,yi;
	for (int i = 1; i <= n; i++) {
	   fa[i] = i;// 初始化并查集
	}
	for(int i=0;i<m;i++){
		cin >> zi >> xi >> yi;
		if(zi == 1){
			fa[find(xi)] = find(yi);    // 合并集合	
		}else{
			if(find(xi)== find(yi))
				cout << "Y" << endl;
			else
				cout << "N" << endl;
		}	
	}	
	return 0;
}	

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发