WA 10pts求助
查看原帖
WA 10pts求助
385165
ZeroF楼主2023/7/19 10:30
#include<bits/stdc++.h>
using namespace std;
int fa[314514];
int query(int u){
	if(fa[u]==u)return u;
	return fa[u]=query(fa[u]);
}
void merge(int u,int v){
	fa[query(u)]=query(v);
}
int main(){
	int n,k;
	cin>>n>>k;
	int ans=0;
	for(int i=1;i<=n;i++){
		fa[i]=i;
	}
	for(int i=1;i<=k;i++){
		int z,u,v;
		cin>>z>>u>>v;
		if(z==1){
			if(u>n||v>n||query(u)==query(v+n)||query(u+n+n)==query(v))ans++;
			else{
				merge(u,v);
				merge(u+n,v+n);
				merge(u+n+n,v+n+n);
			}
		}
		else{
			if(u>n||v>n||query(u)==query(v)||query(u+n+n)==query(v))ans++;
			else{
				merge(u+n,v);
				merge(u,v+n+n);
				merge(u+n+n,v+n);
			}
		}
		
	}
	cout<<ans<<endl;
	return 0;
}
2023/7/19 10:30
加载中...