食物链

Posted 废柴废柴少女

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了食物链相关的知识,希望对你有一定的参考价值。

扩展域并查集

题目:

https://ac.nowcoder.com/acm/problem/16884

x是A,x+n是B,x+2n是C

#include<stdio.h>
const int maxn=150000;
int f[maxn];
int find(int x)
{
return x==f[x]?x:f[x]=find(f[x]);
}
void mix(int a,int b)
{
int fa=find(a);
int fb=find(b);
if(fa==fb)
return;
else
f[fa]=fb;
}
int main()
{
int n,k;
scanf("%d %d",&n,&k);
for(int i=1;i<=3*n;i++)
f[i]=i;
int d,x,y;
int ans=0;
while(k--)
{
scanf("%d %d %d",&d,&x,&y);
if(x>n||y>n)
{
ans++;
continue;
}
if(d==1)
{
if(find(x)==find(y+n)||find(x)==find(y+2*n))
ans++;
else
{
mix(x,y);
mix(x+n,y+n);
mix(x+2*n,y+2*n);
}
}
else
{
if(find(x)==find(y)||find(x)==find(y+2*n))
ans++;
else
{
mix(x,y+n);
mix(x+n,y+2*n);
mix(x+2*n,y);
}
}
}
printf("%d\\n",ans);
}

 

以上是关于食物链的主要内容,如果未能解决你的问题,请参考以下文章

有关食物的英语短语

立项申请(食物链教学工具)

HAOI 2016 食物链

POJ 1182 食物链

(第五周)立项申请更新(食物链教学工具)

食物链(poj1182)