20分求调
查看原帖
20分求调
1005260
Andy1818楼主2024/12/11 22:11

MLE

#include<bits/stdc++.h>
using namespace std;
int s[10004];
int bcjfind(int x){
	if(x==s[x]){
		return x;
	}
	else{
		s[x]=bcjfind(s[x]);//路径压缩 
		return bcjfind(s[x]);
	}
}
void bcj(int x,int y){
	s[bcjfind(x)]=y;
}
int main()
{
	int n,m,op,x,y;
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		s[i]=i;
	}
	for(int i=1;i<=m;i++){
		cin>>op>>x>>y;
		if(op==1){
			bcj(x,y);
		}
		else{
			if(bcjfind(x)==bcjfind(y)){
				cout<<"Y"<<endl;
			}
			else{
				cout<<"N"<<endl;
			}
		}
	}
	return 0;
}
2024/12/11 22:11
加载中...