#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. JavaDay3(上)

    Java learning_Day3(上) 本人学习视频用的是马士兵的,也在这里献上 <链接:https://pan.baidu.com/s/1qKNGJNh0GgvlJnitTJGqgA> ...

  2. Linux修复日志

    阿里云后台系统报告漏洞,解决记录 中级: RHSA-2019:0049-重要: systemd 安全更新

  3. [SDOI2008] 校门外的区间 - 线段树

    U T 即将区间 \(T\) 范围赋值为 \(1\) I T 即将区间 \(U - T\) 范围赋值为 \(0\) D T 即将区间 \(T\) 赋值为 \(0\) C T 由于 \(S=T-S=T( ...

  4. app点击底部菜单切换标题

    <!DOCTYPE HTML><html><head> <meta charset="utf-8"> <meta name=& ...

  5. intermediate-python-for-data-science

    目录 matplotlib plot Scatter Plot histogram Customization Dictionaries, Part 1 Create dictionary dicti ...

  6. Codeforces Round #601 (Div. 2) C League of Leesins

    把每一次输入的一组数字存下来,然后把每个数字出现的组数存下来 然后找只出现过一次的数字a,那么这个数字a不是开头就是结尾,默认为开头(是哪个都无所谓),然后去找和它出现在同一组的两个数字b和c,而b和 ...

  7. 2020算法设计竞赛 I、匹配星星

    链接:https://ac.nowcoder.com/acm/contest/3005/I来源:牛客网 天上有n颗星星,每颗星星有二维坐标(xi,yi)(x_i, y_i)(xi​,yi​),还有一个 ...

  8. nginx的配置总结,有时间自己整理

    推荐文章:https://www.cnblogs.com/digdeep/p/4217310.html  

  9. mysql 1130 Navicat for MySQL 连接MySQL 8.0 出现1130错误

    可能是帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑登入MySQL后,更改"MySQL"数据库"user"表里的&q ...

  10. 在多租户(容器)数据库中如何创建PDB:方法5 DBCA远程克隆PDB

    基于版本:19c (12.2.0.3) AskScuti 创建方法:DBCA静默远程克隆PDB.将 CDB1 中的 PDB1 克隆为 CDB2 中的 ERP2 对应路径:Creating a PDB ...