#include <iostream>
using namespace std;
const int N = ;
int n, m;
int p[N], d[N]; //p是baba,d是距离
int find(int x) {
if (p[x] != x) {//如果x不是树根
int t = find(p[x]);//指向根节点 存起来 因为赋值完之后就变了
d[x] += d[p[x]];//更新为到根节点之间的距离 ==到父节点之间的距离+父节点到根节点之间的距离
p[x] = t;//再把赋值成根节点
}
return p[x];
}
int main() {
scanf("%d%d", &n, &m);
for (int i = ; i <= n; i ++ ) p[i] = i;//初始化,自己是一个集合
int res = ;//假话的个数
while (m -- ) {
int t, x, y;//t表示询问的种类
scanf("%d%d%d", &t, &x, &y);
if (x > n || y > n) res ++ ;//超出范围,假话
else {
int px = find(x), py = find(y);//找根节点
if (t == ) { //如果是同类
if (px == py && (d[x] - d[y]) % )//如果在一个集合而且距离%3不等
res ++ ;//假话
else if (px != py) {//如果根节点不同,说明不在一个集合
p[px] = py;//把py变成px的根节点
d[px] = d[y] - d[x];//因为同一类,所以%3之后相等,所以距离直接为差
}
} else {//表示吃 如果x吃y,那么d[x]-d[y]=1
if (px == py && (d[x] - d[y] - ) % )//如果在一个集合, 而且不为1
res ++ ;//假话
else if (px != py) {//如果不在一个集合
p[px] = py;//合并
d[px] = d[y] + - d[x];
}
}
}
}
printf("%d\n", res);
return ;
}

AcWing 240. 食物链的更多相关文章

  1. AcWing 240. 食物链 | 并查集

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

  2. AcWing:240. 食物链(扩展域并查集 or 带边权并查集)

    动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形. A吃B, B吃C,C吃A. 现有N个动物,以1-N编号. 每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种. 有人用 ...

  3. ACWing 238 银河英雄传说

    最近带权并查集这块比较薄弱,直接看食物链看不懂,就老实一步步来了. 有一个划分为N列的星际战场,各列依次编号为1,2,…,N. 有N艘战舰,也依次编号为1,2,…,N,其中第i号战舰处于第i列. 有T ...

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

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

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

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

  6. tyvj1202 数数食物链

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

  7. vijos1531 食物链

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

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

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

  9. RHCS 6.5 由于resource-agents-3.9.2-40.el6版本过低导致rgmanager[61164]: [fs] umount failed - REBOOTING问题的解决

    問題描述: RHEL 6.5版本RHCS在disable或者relocate service的時候,會導致節點重啟,查看日誌顯示umount掛载點失敗,日誌如下: Nov 29 16:03:50 ph ...

随机推荐

  1. 小程序图片上传,长按删除,weui

    <view class="weui-cells"> <view class="weui-cell"> <view class=&q ...

  2. [CF1304F] Animal Observation - dp,单调队列

    设 \(f[i][j]\) 为第 \(i\) 天在第 \(j\) 个位置放置的最大值,设 \(s[i][j]\) 是第 \(i\) 行的前缀和,则 \[ \begin{align} f[i][j] & ...

  3. 解决jquery click事件执行两次

    js 解决办法 event.preventDefault() :阻止默认行为,可以用 event.isDefaultPrevented() 来确定preventDefault是否被调用过了 event ...

  4. Node.js、npm和webpack的安装

    1. 前往Node.js官网下载安装程序 2. 一路点击下一步即可 3. 测试是否安装成功 4. 配置npm在安装全局模块时的路径和缓存cache的路径 因为在执行例如npm install webp ...

  5. OpenGL 编程指南 (3.1)

    1.OpenGL使用的是RGB颜色空间,例如三个颜色分量各占8位,那么就说这个颜色值色深24,能够表示2^24中颜色. 2.多重采样是基于采样的抗锯齿技术,有OGAA(ordered grid ant ...

  6. D3新学习

    1. Python Web(1):建立第一个Web项目 直接将d3 index.html代码拷贝进index.html中即可. 2. D3入门教程; D3.js的v5版本入门教程

  7. Binary Number(位运算)

    #include<bits/stdc++.h> using namespace std; int n; int getBits1(int n)//求取一个数的二进制形式中1的个数. { i ...

  8. java基础(十三)之接口

    接口 什么是接口? 生活中也有很多的接口,比如USB接口.定义了接口就是定义了调用对象的标准. 接口基本语法 1.使用interface定义:2.接口当中的方法都是抽象方法:因为抽象函数不能生成对象, ...

  9. dp--C - Mysterious Present

    C - Mysterious Present Peter decided to wish happy birthday to his friend from Australia and send hi ...

  10. mysq,oraclel复杂SQL操作汇总

    一.对数据库原有字段默认值的设置 1.删除原有字段默认值 alter table 表名 alter column 字段 drop default;2..重写原有字段默认值alter table 表名 ...