用并查集,方法模仿POJ2492A Bug's Life, 这题是2*n个数,如果a和b是异性,那么a和b+n,b和a+n是同性,这样在判断a和b是否是同性时可以通过a+n,或b+n来判断。
而1182 这题是类似的方法,如果 b 被 a 吃,那么 a 和 b+n , a+n 和 b+2*n ,b 和 a+2*n
是同类。如果输入有“1 A B”, 如果A,B不同类 或 B 吃 A 则这句话是假的。
#include<cstdio>
int pre[150002];
void init(int n)
{
int i;
for(i=0;i<=n*3;i++)
{
pre[i]=-1;
}
}
int find(int x)
{
int p;
p=x;
while(pre[p]>=0)
{
p=pre[p];
}
return p;
}
int unit(int x,int y)
{
int a,b;
a=find(x);b=find(y);
if(a==b)
return 0;
else
if(pre[a]<pre[b])
{
pre[a]+=pre[b];pre[b]=a;
}
else
{
pre[b]+=pre[a];pre[a]=b;
}
return 0;
}
int main()
{
int n,k,i,j,a,b,c;
scanf("%d%d",&n,&k);
init(n);
int ans = 0;
while(k--)
{
scanf("%d%d%d",&a,&b,&c);
if(b>n||c>n||(a==2&&b==c))
{
ans ++;
continue;
}
if(a==1)
{
if(!(((find(b)==find(c+n))||(find(b+n)==find(c+2*n))||(find(c)==find(b+2*n)))
||((find(c)==find(b+n))||(find(c+n)==find(b+2*n))||(find(b)==find(c+2*n))))) // 如果不是 A 吃 B 或 B 吃 A
{
unit(b,c);
unit(b+n,c+n);
unit(b+2*n,c+2*n);
}
else ans++;
}
if(a==2)
{
if(find(b)==find(c)||((find(c)==find(b+n))||(find(c+n)==find(b+2*n))||(find(b)==find(c+2*n))))// 如果A,B不同类 或 B 吃 A
ans ++;
else
{
unit(b,c+n);
unit(b+n,c+2*n);
unit(c,b+2*n);
}
}
}
printf("%d\n",ans);
}
分享到:
相关推荐
【标题】"简单的食物链" 是一个基于C++编程语言的大作业项目,旨在让学生通过编程实践理解生态系统的食物链概念。在这个项目中,学生需要利用C++编程技巧来模拟自然界中的食物链关系,例如捕食者与被捕食者之间的...
poj 食物链代码.带权并查集,关键是找到其中的一些关系式.
在这一课中,学生们将学习生物间是如何通过食物链相互联系,以及不同食物链是如何交织形成食物网的。这样的学习对于孩子们早期形成科学的自然观和生态观具有重要意义。 首先,食物链的概念是这样的:它由一系列的...
食物链是生态系统中生物之间能量传递和营养关系的一种表现形式,是生物学中的基本概念,尤其在生态学和生物学教育中占有重要地位。粤教小学科学六年级上册的食物链PPT课件,旨在帮助学生理解这个核心概念,通过生动...
教科版(2017秋)五年级下册16食物链与食物网 同步练习(含答案) .pdf
【食物链和食物网】是生态系统中能量流动和物质循环的重要途径。食物链是指在一个生态系统中,各种生物之间由于食物关系而形成的链状结构。在食物链中,通常以绿色植物作为起点,因为它们是生产者,能通过光合作用将...
七年级生物 生物之间的食物关系 食物链.ppt
《食物链系统:生态系统中的生命交织》 在我们的大自然中,存在着一种微妙而复杂的相互关系,这就是所谓的“食物链系统”。食物链系统是生态学的基础概念之一,它描绘了生物群落中不同生物种群之间的营养关系,揭示...
教科版(2017秋)五年级下册16食物链和食物网 课件 .pdf
【海洋动物食物链】是指海洋生态系统中不同生物之间形成的一种食物关系,其中一种生物成为另一种生物的食物,形成一个环环相扣的链状结构。在这个过程中,每种生物都在食物链的不同层次上扮演着消费者的角色,有的是...
食物链和食物网是生态系统中生物之间相互依赖和相互作用的重要概念,主要涉及物种之间的食物关系。在小学科学教育中,这些概念对于帮助学生理解生态平衡和生物多样性至关重要。 首先,我们要明白生物生存的基本需求...
在生态系统中,食物链和食物网是描述生物间能量流动和物质循环的重要概念。它们不仅体现了生物间的捕食关系,而且揭示了物质和能量在生态系统中的传递过程。为了深入理解这一过程,本文将对食物链和食物网的定义、...
食物链和食物网是生态学中的基本概念,用于描述生态系统中生物之间相互依赖和捕食的关系。在自然环境中,各种生物通过食物链和食物网互相连接,形成复杂的食物关系网络。 食物链是生物群落中一种线性的营养关系,...
【食物链的概念与重要性】 食物链是生态系统中生物间相互依赖、相互制约的食物关系的表述方式,描述了能量和物质在生物群落中的传递路径。在这个过程中,生产者(通常是绿色植物)通过光合作用获取太阳能并转化为...
在自然界的广阔舞台上,生态系统是生命活动的中心,其中食物链和食物网是维持生命活动能量流动的关键概念。对于小学五年级的学生来说,理解食物链和食物网是他们探究生物学世界的第一步,这不仅有助于他们认识到生物...
综上所述,食物链和食物网是生态系统营养结构的核心,它们揭示了生物间的相互依赖和能量流动,而生物富集现象则提示我们环境保护的重要性,防止有害物质通过食物链对生物造成损害。理解这些概念对于保护生物多样性和...
在自然界的壮丽画卷中,食物链如同一条条流动的溪流,维系着生态系统的平衡与和谐。对于六年级的小学生来说,理解食物链不仅仅是一次知识的学习,更是一次对生命与自然界深刻认识的开启之旅。本篇教案“六年级科学...
在自然界中,生物与生物之间的关系错综复杂,食物链和食物网便是描述这些关系的基本生态学概念。在五年级的科学课程中,学生将通过教科书和PPT学习教案,深入了解食物链和食物网的含义,以及它们在生态平衡和生物...
8. **食物链的数量与长度**:在食物网中,食物链的条数可能很多,最长的食物链通常是从生产者开始,经过多个消费者级别直到顶级消费者。较长的食物链意味着能量损失更多,因为每个营养级的能量传递效率大约只有10%到...