好水的数据
查看原帖
好水的数据
461616
Judgelight楼主2023/4/9 09:11

启发式合并,但是去掉了启发式。

link

#include<bits/stdc++.h>
#define N 10009
using namespace std;
int n,m,belong[N];
vector<int>v[N];
signed main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		v[i].push_back(i);
		belong[i]=i;
	}
	for(int i=1;i<=m;i++){
		int op,x,y;
		cin>>op>>x>>y;
		if(op==1){
			if(belong[x]==belong[y]){
				continue;
			}
			x=belong[x],y=belong[y];
//			if(v[x].size()>v[y].size()){
//				swap(x,y);
//			}
			for(int j=0;j<v[x].size();j++){
				belong[v[x][j]]=y;
				v[y].push_back(v[x][j]);
			}
			v[x].clear();
		}
		else{
			v[belong[x]]==v[belong[y]]?cout<<"Y"<<endl:cout<<"N"<<endl;
		}
	}
	return 0;
}
2023/4/9 09:11
加载中...