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

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

根据这句话 可以看出来这是一个种类并查集

种类并查集 通常 数组要开大一倍

再根据这句话 判断一下 是否是假话 如果是假话就 ans ++ 就可以了。

最后输出ans

// web :
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
inline LL read () { LL res = 0 ;int f (1) ;char ch = getchar ();
while (!isdigit(ch)) { if (ch == '-') f = -1 ;ch = getchar();}
while (isdigit(ch)) res = (res << 1) + (res << 3) + (ch ^ 48) ,ch = getchar(); return res * f ;
}
const int N = 50000+10 ;
int n,k;
int ans = 0 ;
int fa[N*3];
inline int get(int x) {
if (x == fa[x]) return x;
return fa[x] = get(fa[x]);
}
signed main () {
n=read(); k=read();
for(register int _=1;_<=n*3;_++) fa[_]=_;
for(register int _=1;_<=k;_++) {
int num=read(),x=read(),y=read();
if(x>n or y>n or (num == 2 and x == y)){
ans ++ ; continue ;
}
if(num == 1 and (get(x) == get(y+n) or get(x+n) == get(y))){
ans ++ ; continue ;
}
if(num == 2 and (get(x) == get(y) or get(x) == get(y+n))) {
ans ++ ; continue ;
}
if(num == 1) {
fa[get(x)] = get(y) ;
fa[get(x+n)] = get(y+n) ;
fa[get(x+(n<<1))] = get(y+(n<<1));
}
else {
fa[get(x+n)] = get(y) ;
fa[get(x+(n<<1))] = get(y+n) ;
fa[get(x)] = get(y+(n<<1)) ;
}
}
cout << ans << endl ;
return 0;
}

P2024 [NOI2001]食物链的更多相关文章

  1. 洛谷 P2024 [NOI2001]食物链 解题报告

    P2024 [NOI2001]食物链 题目描述 动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形.A 吃 B,B 吃 C,C 吃 A. 现有 N 个动物,以 1 - N 编号.每个 ...

  2. 【题解】P2024 [NOI2001]食物链 - 数据结构 - 并查集

    P2024 [NOI2001]食物链 声明:本博客所有题解都参照了网络资料或其他博客,仅为博主想加深理解而写,如有疑问欢迎与博主讨论✧。٩(ˊᗜˋ)و✧*。 题目描述 动物王国中有三类动物 \(A,B ...

  3. 洛谷 P2024 [NOI2001]食物链 (并查集)

    嗯... 题目链接:https://www.luogu.org/problemnew/show/P2024 这道题和团伙这道题的思想比较类似,都是一个数组分成几个集合,但这道题的思路更加混乱,建议没做 ...

  4. 种族并查集模板题分析 -----P2024 [NOI2001]食物链

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

  5. P2024 [NOI2001]食物链(种类并查集)

    题目链接: https://www.luogu.org/problemnew/show/P2024 题目描述 动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形.A 吃 B,B 吃 ...

  6. P2024 [NOI2001]食物链 并查集

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

  7. 洛谷 P2024 [NOI2001]食物链

    题意简述 有人用两种说法对这 N 个动物所构成的食物链关系进行描述: 1."1 X Y",表示 X 和 Y 是同类. 2."2 X Y",表示 X 吃 Y . ...

  8. 洛谷 P2024 [NOI2001]食物链(种类并查集,加权并查集)

    传送门 解题思路 加权并查集: 什么是加权并查集? 就是记录着每个节点到它的父亲的信息(权值等). 难点:在路径压缩和合并节点时把本节点到父亲的权值转化为到根节点的权值 怎么转化呢? 每道题都不一样Q ...

  9. 洛谷 P2024 [NOI2001]食物链——带权值的并查集维护

    先上一波题目 https://www.luogu.org/problem/P2024 通过这道题复习了一波并查集,学习了一波带权值操作 首先我们观察到 所有的环都是以A->B->C-> ...

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

    大水题一道啊,几分钟切掉. 还是扩展域,每个点拆3个点,之间连边表示有关系(即捕食关系).然后随便判定一下就好了,不难,毕竟NOI上古题目. #include<iostream> #inc ...

随机推荐

  1. Appium,IOS 模拟器,Java工程搭建

    首先进入sample code Test App 有TestApp.xcodeproj文件的工程目录下 下编译出TestApp.app文件 1.新建 java 工程 2.import需要的包 新建cl ...

  2. notpad++快捷键

    Notpad++快捷键 Notepad++选中行操作 快捷键 使用技巧 作者: Rememberautumn 分类: 其他 发布时间: 2014-09-04 14:18 阅读: 60,106  微信小 ...

  3. mongo-java-driver

    http://mvnrepository.com/artifact/org.mongodb/mongo-java-driver/3.5.0 <!-- https://mvnrepository. ...

  4. Struts错误信息回传

    <td height="20" align="center" class="loginMiddleDiv_loginInfo_window_wa ...

  5. 一个基本的spring+mybatis所需要的包

    spring+mybatis需要的包:org.springframework.spring-webmvc(spring框架DispatcherServlet需要,spring-webmvc会依赖spr ...

  6. Http常用状态码及含义

    HTTP 400 – 请求无效 HTTP 404- 无法找到文件或目录 HTTP 500 – 内部服务器错误 HTTP 502 – 网关错误 HTTP 400 – 请求无效 HTTP 401.1 – ...

  7. java 连接飞信API

    通过java连接飞信api给自己的好友(包括自己)发送飞信内容.如果对方的手机号非你的飞信好友则不能发送.​​1. [代码]飞信发送类     package per.artisan.fetion; ...

  8. java时间类型转换 JsonValueProcessor

    问题描述: java里面时间类型转换成json数据就成这样了:"createTime":{"date":30,"day":3,"h ...

  9. java中匹配中文的正则表达式

    java中要匹配中文的正则表达式可以有两种写法:一是使用unicode中文码:二是直接使用汉字字符: 例: (1)String str = "晴"; String regexStr ...

  10. js 购物车中,多件商品数量加减效果修改,实现总价随数量加减改变

    <!DOCTYPE html> <html> <head> <meta charset=UTF-8 /> <title>无标题文档</ ...