MLE ? !
查看原帖
MLE ? !
907113
Bug_Hunter楼主2024/7/10 11:00
#include<bits/stdc++.h>
using namespace std;
const int N=200001;
int n,k,fa[N];
int op,x,y,cnt;
int find(int x){
	if(fa[x]==x) return x;
	return fa[x]=find(fa[x]);
}
int main(){
	cin>>n>>k;
	for(int i=1;i<=3*n;i++) fa[i]=i;
	while(k--){
		cin>>op>>x>>y;
		if(x>n||y>n){
			cnt++;
			continue;
		}
		int fx=find(x),fy=find(y);
		if(op==1){
			if(fa[fx]==fy+n||fa[fx]==fy+2*n){
				cnt++;
				continue;
			}
			fa[fx]=fy;
			fa[fx+n]=fy+n;
			fa[fx+2*n]=fy+2*n;
		}
		if(op==2){
			if(fx==fy){
				cnt++;
				continue;
			}
			if(fa[fx+n]==fy+n||fa[fx+n]==fy+2*n){
				cnt++;
				continue;
			}
			fa[fx]=fy+2*n;
			fa[fx+n]=fy;
			fa[fx+2*n]=fy+n;
		}
	}
	cout<<cnt;
	return 0;
}
2024/7/10 11:00
加载中...