开3*n的并查集,其中x用来连接与x同类的,x+n用来连接x吃的,x+2*n用来连接x被吃的。

1 x y时,如果 x吃y 或 x被y吃,那么为假话,

否则x与y同类,x吃的y也吃,x被吃的y也被吃;

2 x y时,如果 x与y同类(x与x自然也是同类) 或 y吃x,那么为假话,

否则x吃y,y被x吃,y吃x被吃的。

代码:

#include<iostream>
#include<stdio.h>
#include<cstring>
#include<queue>
#include<map>
#include<stdlib.h>
using namespace std; int f[]; int find(int x)
{
if(f[x]==x)return x;
return f[x]=find(f[x]);
} void he(int x,int y)
{
x=find(x);
y=find(y);
if(x==y)return;
f[y]=x;
} int main()
{
int n,m,ans=;
cin>>n>>m; for (int i=;i<=*n;i++)f[i]=i; for (int i=;i<=m;i++)
{
int op,x,y;
cin>>op>>x>>y;
if (x<||y<||x>n||y>n||(x==y&&op==))ans++;
else
{
if (op==)
{
if (find(x)==find(y+n)||find(x)==find(y+*n))ans++;
else
{
he(x,y);
he(x+n,y+n);
he(x+*n,y+*n);
}
}
else
{
if (find(x)==find(y)||find(y+*n)==find(x))ans++;
else
{
he(x,y+n);
he(x+n,y+*n);
he(x+*n,y);
}
}
}
}
cout<<ans;
}

code1074 食物链的更多相关文章

  1. 关押罪犯 and 食物链(并查集)

    题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用"怨气值"( ...

  2. NOI2001|POJ1182食物链[种类并查集 向量]

    食物链 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 65430   Accepted: 19283 Description ...

  3. tyvj1202 数数食物链

    描述 TsyD学习了生物的生态环境那一张后,老师留了一项作业,就是给一张食物网,求所有食物链的总数.(从最低营养级生物(它不能吃任何其他的生物)开始到最高营养级(它不能被任何其他生物吃) 叫做一条食物 ...

  4. vijos1531 食物链

    背景 安徽省芜湖市第二十七中学测试题 NOI 2001 食物链(eat) Description:OfficialData:OfficialProgram:JackDavid127 描述 动物王国中有 ...

  5. poj1182食物链_并查集_挑战程序设计竞赛例题

    食物链 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 65534   Accepted: 19321 Description ...

  6. BZOJ4562: [Haoi2016]食物链

    Description 如图所示为某生态系统的食物网示意图,据图回答第1小题 现在给你n个物种和m条能量流动关系,求其中的食物链条数. 物种的名称为从1到n编号 M条能量流动关系形如 a1 b1 a2 ...

  7. [poj1182]食物链(并查集+补集)

    食物链 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 64841   Accepted: 19077 Description ...

  8. [并查集] POJ 1182 食物链

    食物链 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 66294   Accepted: 19539 Description ...

  9. 【BZOJ-4562】食物链 记忆化搜索(拓扑序 + DP)

    4562: [Haoi2016]食物链 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 133  Solved: 112[Submit][Status] ...

随机推荐

  1. 监控mysql状态并发送Email

    */10 * * * *  /shell/mysql_status.sh > /dev/null 2>&1 #!/bin/bash port55=`/usr/sbin/lsof - ...

  2. Unit01: jQuery概述 、 jQuery选择器 、 jQuery操作DOM

    Unit01: jQuery概述 . jQuery选择器 . jQuery操作DOM 使用jQuery放大字体: <!DOCTYPE html> <html> <head ...

  3. FC Switch sfpshow

    sfpshow - fault-finding on Brocade Fibre Channel Switches So you've hit a situation where a Fibre Ch ...

  4. redisTemplate 方法

    ClassPathXmlApplicationContext appCtx = new ClassPathXmlApplicationContext("spring-redis.xml&qu ...

  5. 设计模式-访问者(Visitor)模式

    访问者模式是对象的行为模式.访问者模式的目的是封装施加在某种数据结构元素上的操作.一旦一些操作需要修改,接受这个操作的数据结构可以保持不变. 个人觉得访问者模式相对其他的设计模式来说稍微复杂,难理解一 ...

  6. ALSA声卡09_从零编写之参数设置_学习笔记

    1.参数设置分析 (1)open: soc_pcm_open 依次调用cpu_dai, dma, codec_dai, machine的open或startup函数 只在dma的open函数里添加参数 ...

  7. lnmp环境自动化部署

    lnmp.sh #!/bin/bash#This project to install lnmp#Author:菜逼cd命令玩家#Time:2016.10.13#objective:简化人工手动操作, ...

  8. **请写出一段Python代码实现删除一个list里面的重复元素

    通常涉及到去重操作最好使用set,但是考虑到某些时候可能遇到不允许使用set的情况,那就自己实现一下: l = [2, 4, 5, 6, 1, 3, 4, 5] def f(l, b=0, c=1): ...

  9. from 动态显示select数据

    一. ModelChoiceField(ChoiceField)     ...                        django.forms.models.ModelChoiceField ...

  10. Directshow 判断音视频设备是否被占用<转>

    直接上代码吧: 代码是参考网上大神分享的,在原基础上做了些修改(只检测视频设备): int DeviceIsBusy(char *videoName) { //输入设备的音视频名称 HRESULT h ...