本蒻蒟太菜了,写的程序样例不知为何都过不了,求各位dalao求条 ORZ
#include<bits/stdc++.h>
using namespace std;
int f[30010];
//对于每种生物:设 x 为本身,x+n 为猎物,x+2*n 为天敌
int fi(int k)
{
if(f[k]!=k)
f[k]=fi(k);
return f[k];
}
void un(int a,int b)
{
f[fi(f[a])]=fi(f[b]);
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
long long ans=0,n,k,i,j,x,y,z;
cin>>n>>k;
for(i=1;i<=3*n;i++)
f[i]=i;
for(i=1;i<=k;i++)
{
cin>>z>>x>>y;
if(x>n||y>n)
{
ans++;
continue;
}
if(z==1)
{
if(fi(x+n)==fi(y)||fi(x+n*2)==fi(y))
{
ans++;
continue;
}
un(x,y);
un(x+n,y+n);
un(x+n*2,y+n*2);
}
if(z==2)
{
if(x==y||fi(x)==fi(y)||fi(x+n*2)==fi(y))
{
ans++;
continue;
}
un(x,y+2*n);
un(x+n,y);
un(x+2*n,y+n);
}
}
cout<<ans;
return 0;
}