题目描述

动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形。A 吃 B,B

吃 C,C 吃 A。

现有 N 个动物,以 1 - N 编号。每个动物都是 A,B,C 中的一种,但是我们并不知道

它到底是哪一种。

有人用两种说法对这 N 个动物所构成的食物链关系进行描述:

第一种说法是“1 X Y”,表示 X 和 Y 是同类。

第二种说法是“2 X Y”,表示 X 吃 Y 。

此人对 N 个动物,用上述两种说法,一句接一句地说出 K 句话,这 K 句话有的是真

的,有的是假的。当一句话满足下列三条之一时,这句话就是假话,否则就是真话。

• 当前的话与前面的某些真的话冲突,就是假话

• 当前的话中 X 或 Y 比 N 大,就是假话

• 当前的话表示 X 吃 X,就是假话

你的任务是根据给定的 N 和 K 句话,输出假话的总数。

输入输出格式

输入格式:
从 eat.in 中输入数据

第一行两个整数,N,K,表示有 N 个动物,K 句话。

第二行开始每行一句话(按照题目要求,见样例)

输出格式:
输出到 eat.out 中

一行,一个整数,表示假话的总数。

输入输出样例

输入样例#1: 复制
100 7
1 101 1
2 1 2
2 2 3
2 3 3
1 1 3
2 3 1
1 5 5
输出样例#1: 复制
3
说明

1 ≤ N ≤ 5 ∗ 10^4

1 ≤ K ≤ 10^5

code:

#include<cstdio>
int n,k,sum;
int fa[150015];int find(int x){if(fa[x]==x) return x;return fa[x]=find(fa[x]);
//    return fa[x]==x?x:(fa[x]=find(fa[x]));
}int main(){scanf("%d %d",&n,&k);for(int i=1;i<=n*3;i++) fa[i]=i;for(int i=1;i<=k;i++){int fl,x,y;scanf("%d %d %d",&fl,&x,&y);if(x>n||y>n) {sum++;continue;}else if(fl==1){if(find(x)==find(y+n)||find(x+n)==find(y)){sum++;continue;}fa[find(x)]=fa[find(y)],fa[find(x+n)]=fa[find(y+n)],fa[find(x+n+n)]=fa[find(y+n+n)];}else if(fl==2){if(find(x)==find(y)||find(y+n)==find(x)){sum++;continue;}fa[find(x+n)]=fa[find(y)],fa[find(x+n+n)]=fa[find(y+n)],fa[find(x)]=fa[find(y+n+n)];}}printf("%d",sum);return 0;
}

转载于:https://www.cnblogs.com/Menteur-Hxy/p/9248030.html

P2024 食物链 (补集)相关推荐

  1. [LUOGU] P2024 食物链

    题目描述 动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形.A 吃 B,B吃 C,C 吃 A.现有 N 个动物,以 1 - N 编号.每个动物都是 A,B,C 中的一种,但是我们并 ...

  2. noip2017考前整理(未完)

    快考试了,把我以前写过的题回顾一下. Noip2007 树网的核:floyd,推出性质,暴力. Noip2008 笨小猴:模拟 Noip2008 火柴棒等式:枚举 Noip2008 传纸条:棋盘dp ...

  3. MATLAB中定义数组序列,matlab怎么定义一个数组

    A=[]; n=input('n=');%数组的长度 for i=1:n fprintf('a%.0f=',i); x=input('');%分别输入各个数的值 A=[A,x]; end A 就可以得 ...

  4. 【洛谷P2024】食物链

    题目描述 动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形.A 吃 B,B 吃 C,C 吃 A. 现有 N 个动物,以 1 - N 编号.每个动物都是 A,B,C 中的一种,但是我 ...

  5. P2024 [NOI2001]食物链[扩展域并查集]

    题目来源:洛谷 题目描述 动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形.A 吃 B,B 吃 C,C 吃 A. 现有 N 个动物,以 1 - N 编号.每个动物都是 A,B,C ...

  6. 【并查集】noi2001食物链

    P2024 [NOI2001]食物链 //这是一道比我年纪大的题啊啊啊啊啊QAQ 加权并查集  三倍并查集好厉害qwq 图源洛谷题解 贴代码qwq 1 #include<cstdio> 2 ...

  7. 食物链(种类并查集)

    一般我们的并查集是可以维护这样的关系的,比如亲戚的亲戚是亲戚,只需要简单调用并查集就可以实现.但如果我们现在想要维护一个这样的关系,比如敌人的敌人是朋友,那一般的并查集就不行了,对于一般的并查集而言, ...

  8. [kuangbin带你飞]专题五 并查集 E - 食物链 (带权并查集)

    E - 食物链 题目链接:https://vjudge.net/contest/66964#problem/E 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形.A吃B, B吃C,C ...

  9. [bzoj4562][Haoi2016]食物链_记忆化搜索_动态规划

    食物链 bzoj-4562 Haoi-2016 题目大意:给你n个点,m条边的DAG,求所有的满足条件的链,使得每条链的起点是一个入度为0的点,中点是一条出度为0的点. 注释:$1\le n\le 1 ...

最新文章

  1. 使用 Windows 命令行删除结果
  2. hexo + Github 搭建问题综述
  3. kvm(十)虚拟机存储池
  4. Spring-ApplicationContext解读
  5. 个人计算机技术分享,一个计算机类本科毕业设计分享
  6. 网络直播“黑科技”:Stream Matrix
  7. vue3的传送门teleport究竟有多神奇?suspense发起异步请求有多简约?
  8. 蓝桥杯第四届初赛-买不到的数目-数论
  9. [APIO2013]机器人(斯坦纳树)
  10. python 之图片转字符画
  11. 【智慧医疗】破解医疗数据孤岛,实现信息共享
  12. 谷歌企业邮箱:应用专用密码
  13. HTC VIVE☀️四、Linear Drive与Circular Drive的使用
  14. 2018年总结及2019年展望
  15. XP需要计算机管理权限,xp无法无法使用管理员权限运行软件的解决步骤
  16. python多个箱线图_箱线图Python
  17. jdk eclipes 配置 MySql navicat8_mysql_en安装
  18. Matplotlib坐标轴范围
  19. 淘宝/天猫,1688,拼多多,京东店铺获取所有商品详情(api接口详情)
  20. Protel99 SE进行射频电路PCB设计的流程【转】

热门文章

  1. linux中怎么删除只读变量,【Linux】【问题集锦】如何删除shell只读变量
  2. python边缘检测代码_Python中的边缘检测
  3. matlab中描绘简单曲线和点
  4. ICCV 2017《Unsupervised Laerning of Important Objects from First-Person Videos》论文笔记
  5. python自动化开发教程_Python自动化开发实战视频课程-全新基础篇_Python教程
  6. workerman events.php,workerman安装event扩展的方法介绍
  7. vim编写python没有代码提示_vim编写python自动补全
  8. python中enumerate()函数_Python enumerate() 函数
  9. 什么浏览器好用_还在用手机自带浏览器么?这个不足1M的浏览器却功能更加强大...
  10. bat tomcat程序在后台执行_Web中间件漏洞之Tomcat篇