全RE,求调
查看原帖
全RE,求调
1040231
woshnd楼主2024/11/23 21:58
#include<bits/stdc++.h>
using namespace std;
const int N=200005;
int f[N];
int fi(int x)                
{
	if(f[x]!=x) return f[x]=fi(f[x]);
	return f[x];
}
int un(int x,int y)         
{
	int a=fi(x);
	int b=fi(y);
	if(a!=b)
		f[a]=b; 
}
int main()
{
	int n,k;
	cin>>n>>k;
	for(int i=1;i<=n*3;i++)
	{
		f[i]=i;
	}      
	int res=0;
	while(k--)
	{
		int d,x,y;
		cin>>d>>x>>y;
		if(x>n||y>n)
		{
			res++;	
			continue;		
		}
		if(d==1)
		{
			if(fi(x+n)==fi(y)||fi(x)==fi(y+n))
				res++;
			else
			{
				un(x,y);
				un(x+n,y+n);
				un(x+2*n,y+2*n);
			}
		}
		else if(d==2)
		{
			if(fi(x)==fi(y)||fi(x)==fi(y+n))
				res++;
			else
			{
				un(x,y+n+n);
				un(x+n,y);
				un(x+n+n,y+n);
			}
		}
	}  
	cout<<res;
	return 0;
}  
2024/11/23 21:58
加载中...