题目

有3种动物,有n个动物,m种说法。
1) 当前的话与前面的某些真的话冲突,就是假话;
2) 当前的话中X或Y比N大,就是假话;
3) 当前的话表示X吃X,就是假话。
求假话数


Input

第一行是两个整数N和K,以一个空格分隔。
以下K行每行是三个正整数 D,X,Y,两数之间用一个空格隔开,其中D表示说法的种类。
若D=1,则表示X和Y是同类。
若D=2,则表示X吃Y。

Output

只有一个整数,表示假话的数目。

Sample Input

输入文件
100 7
1 101 1
2 1 2
2 2 3
2 3 3
1 1 3
2 3 1
1 5 5

Sample Output

3


解题思路

100 7
1 101 1 假话 (大于100)
2 1 2 真话
2 2 3 真话
2 3 3 假话 (自己吃自己)
1 1 3 假话 (因为1吃2,2吃3,所以3吃1,所以1和3不可能是同类)
2 3 1 真话
1 5 5 真话
用father[1~n]来表示同类,father[n+1~n*2]来表示吃,father[n*2+1~n*3]来表示被吃。


代码

#include<cstdio>
using namespace std;
int x,y,father[150001],n,m,p,k,w,s,q,num;
int find(int x)//并查集
{if (x!=father[x]) return father[x]=find(father[x]);else return x;
}
void d(int x,int y)//链接
{int fa=find(x),fb=find(y);if (fa<fb) father[fb]=fa;else father[fa]=fb;
}
int main()
{scanf("%d%d",&n,&k);    for (int i=1;i<=n*3;i++) father[i]=i;   for (int i=1;i<=k;i++){scanf("%d%d%d",&w,&x,&y);if (x>n || y>n || w==2 && (find(x)==find(y) || find(x)==find(y+n*2)) || w==1 && (find(x)==find(y+n) || find(x)==find(y+n*2))) s++;//find(x)==find(y)表示同类,find(x)==find(y+n*2)来表示被吃,find(x)==find(y+n)来表示吃else {if (w==1) {d(x,y);d(x+n,y+n);d(x+n*2,y+n*2);}//链接else {d(x,y+n);d(x+n,y+n*2);d(x+n*2,y);}//链接}}printf("%d",s);
}

jzoj1373-食物链【并查集】相关推荐

  1. Noi2001食物链-并查集

    Noi2001食物链-并查集 1 #include<iostream> 2 #include<cstdio> 3 #include<cstdlib> 4 #incl ...

  2. POJ 1182 食物链 [并查集 带权并查集 开拓思路]

    传送门 P - 食物链 Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Submit  ...

  3. poj 1182 食物链 并查集

    转自一位大佬的最全题解 https://blog.csdn.net/c0de4fun/article/details/7318642 #include <cstdio> #include ...

  4. poj 1182 食物链 (并查集)

    http://poj.org/problem?id=1182 重点依旧是用rank记录相对于根节点的关系,并及时跟新rank的值. code: #include<cstdio> using ...

  5. 【poj 1182】食物链 并查集应用

    食物链 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 59239 Accepted: 17332 Description 动物王 ...

  6. POJ1182 食物链---(经典种类并查集)

    题目链接:http://poj.org/problem?id=1182 食物链 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: ...

  7. POJ-1182 食物链(并查集)

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

  8. 并查集/poj1182 noi2001食物链eat

    题意 有三类动物A,B,C,题中给出两种关系: 1 x y :x y 同类 2 x y :x吃y 对于假话的定义: 1.当前的话与前面的某些真的话冲突,就是假话: 2.当前的话中X或Y比N大,就是假话 ...

  9. POJ 1182 食物链 (并查集解法)(详细注释)

    食物链 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 78510 Accepted: 23396 Description 动物王 ...

  10. POJ 1182 食物链,并查集的拓展

    http://poj.org/problem?id=1182 /******************************************************** 此道题目 前天看的时候 ...

最新文章

  1. springmvc的异常处理对静态的资源的处理
  2. html5 drap 文件夹,带有显示ID的Html5 drap and drop问题
  3. python官网 中文版 新闻-他说,懂中文就能学会Python,但需要这个工具
  4. JavaWeb入门篇(6) 实现字符过滤器 解决全局字符乱码 实现模拟权限拦截
  5. boost::sort模块实现spreadsort 浮点排序示例
  6. 静态注册BroadcastReceiver内部类
  7. 成都Uber优步司机奖励政策(3月23日)
  8. 第218天:Angular---模块和控制器
  9. Python:获取文件夹内 文件夹 和 文件数量
  10. SoapUI接口测试断言
  11. 子组件无法更新父组件请求的数据
  12. 身份证号码校验算法(附Python代码)
  13. 添加企业微信免验证设置
  14. 操作系统--05输入输出
  15. 6个 Python 办公黑科技,工作效率提升100倍!(附代码)
  16. 计算机病毒实训,2021计算机病毒实验报告
  17. Zookeeper小解
  18. Java项目:基于Java药品管理系统(计算机毕业设计)
  19. 蓝桥杯-福尔摩斯到某古堡探险
  20. 盘点30种磁芯结构图汇总

热门文章

  1. mysql5.7组复制多主一从搭建_MySql5.7-多源复制(多主单从)
  2. 数字图像处理王伟强_深度学习主导下,还有必要学数字图像处理?
  3. 数据结构——二叉树的层次遍历进阶
  4. Leetcode 数据结构与算法题解大全——目录(推荐收藏,持续更新)
  5. 「软件项目管理」成本估算模型——Walston-Felix模型和COCOMO Ⅱ模型
  6. [RabbitMQ]工作原理_原理名词解释
  7. [Swagger2]SpringBoot集成Swagger
  8. [JavaWeb-JDBC]JDBC_快速入门_idea jdbc连接Mysql数据库
  9. Redundant Paths POJ - 3177(tarjan+边双连通分量)
  10. 用来表示python代码块的是什么_三分钟带你用简单的Python代码深入理解Python中的元类...