P2024 食物链 灵异情况求助
  • 板块灌水区
  • 楼主GOD_hj
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/7/24 10:02
  • 上次更新2023/10/27 18:41:40
查看原帖
P2024 食物链 灵异情况求助
657864
GOD_hj楼主2022/7/24 10:02
#include<bits/stdc++.h>
using namespace std;
const int N=5e4+10; 
int n,k,aa[N],bb[N],fa[N],ans=0;
inline int ff(int x){
	if(x!=fa[x])
		fa[x]=ff(fa[x]);
	return fa[x];
}
int main(){
	scanf("%d%d",&n,&k);
	for(int i=1;i<=3*n;++i) fa[i]=i;//x 本身 x+n 猎物 x+2*n 天敌 
	for(int x,y,o,i=1;i<=k;++i){
		scanf("%d%d%d",&o,&x,&y);
		if(x>n||y>n){
			ans++;
			continue;
		}
		if(o==1){
			if(ff(x+n)==ff(y)||ff(x+2*n)==ff(y)){
				ans++;
				continue;
			}
			fa[ff(x)]=ff(y);
			fa[ff(x+n)]=ff(y+n);
			fa[ff(x+2*n)]=ff(y+2*n);
		}
		if(o==2){
			if(ff(x)==ff(y)||ff(x+2*n)==ff(y)){
				ans++;
				continue;
			}
			fa[ff(x)]=ff(y+2*n);
			fa[ff(x+n)]=ff(y);
			fa[ff(x+2*n)]=ff(y+n);
		}
	}
	printf("%d\n",ans);
	return 0;
}
  • 若删掉aa,bb两数组,就RE了,
  • 加上开O2居然A掉了!
2022/7/24 10:02
加载中...