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

并查集 首先先要读懂题目,a是b的食物的话,b的天敌是a,b的食物是a的天敌 比如,人吃鸡,鸡吃草,那么草吃人..... 所以建3个并查集,+n时表示这是其食物,+2*n时表示这是其天敌 所以当x,y是同类当且仅当x的食物不是y,且x的天敌不是y 当x吃y当且仅当x和y不是同类,y的食物不是x 然后并查集维护即可 #include <bits/stdc++.h> using namespace std; const int MAXN=51000; int n,k,fa[MAXN*4],ans;…
题目链接 思路:并查集,因为一开始我们并不知道每一只动物是哪一个种类的,所以我们干脆建立三倍于n的空间,1~n这三分之一用来存第i只动物是A的情况,n+1~2n这三分之一用来存第(i-n)只动物是B的情况,2n+1~3n这三分之一用来存这只动物是C的情况.对于每一句话给出的关系,我们并不知道其中的两个动物分别是属于哪一个种类的,所以我们就把每一种情况都处理一遍.当两个属于同一个区间的动物被合并时,就代表它们是同一个种类的:当两个属于不同区间的动物被合并时,就代表作为父节点的那一只动物吃作为子节点…
P2024 [NOI2001]食物链 题目描述 动物王国中有三类动物 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 个动物,用上述两种说法,…
P2024 [NOI2001]食物链 声明:本博客所有题解都参照了网络资料或其他博客,仅为博主想加深理解而写,如有疑问欢迎与博主讨论✧。٩(ˊᗜˋ)و✧*。 题目描述 动物王国中有三类动物 \(A,B,C\),这三类动物的食物链构成了有趣的环形.\(A\) 吃 \(B\),\(B\) 吃 \(C\),\(C\) 吃 \(A\). 现有 \(N\) 个动物,以 \(1 - N\) 编号.每个动物都是 \(A\) , \(B\) , \(C\) 中的一种,但是我们并不知道它到底是哪一种. 有人用两种…
嗯... 题目链接:https://www.luogu.org/problemnew/show/P2024 这道题和团伙这道题的思想比较类似,都是一个数组分成几个集合,但这道题的思路更加混乱,建议没做过团伙的先做一下 (题目链接:https://www.luogu.org/problemnew/show/P1892   我的博客:https://www.cnblogs.com/New-ljx/p/10883425.html) 首先食物链中这道题我们一定要明白题意: (1) 判断是假话的条件要找全…
题目链接: https://www.luogu.org/problemnew/show/P2024 题目描述 动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形.A 吃 B,B 吃 C,C 吃 A. 现有 N 个动物,以 1 - N 编号.每个动物都是 A,B,C 中的一种,但是我们并不知道 它到底是哪一种. 有人用两种说法对这 N 个动物所构成的食物链关系进行描述: 第一种说法是"1 X Y",表示 X 和 Y 是同类. 第二种说法是"2 X Y"…
本文参考了:洛谷p2024题解 题目描述 动物王国中有三类动物 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…
先上一波题目 https://www.luogu.org/problem/P2024 通过这道题复习了一波并查集,学习了一波带权值操作 首先我们观察到 所有的环都是以A->B->C->A这样的三元环形式存在的 不同动物之间的关系有三种 同类 吃 被吃 那么我们用+1表示吃 +2表示被吃 0表示同类就可以很清楚的记录不同动物的关系了 这样我们只需要在合并并查集的时候对路径的权值进行一定的操作 就可以记录不同动物之间的关系以便查询了 #include<cstdio> #inclu…
题目描述 动物王国中有三类动物 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 句话有的是真 的,有的是假的.当…
题意简述 有人用两种说法对这 N 个动物所构成的食物链关系进行描述: 1."1 X Y",表示 X 和 Y 是同类. 2."2 X Y",表示 X 吃 Y . 有出 K 句话,这 K 句话有的是真的,有的是假的. 当前的话与前面的某些真的话冲突,就是假话 当前的话中 X 或 Y 比 N 大,就是假话 当前的话表示 X 吃 X,就是假话 输出假话的总数. 题解思路 开三个并查集, "x吃y"的关系 merge(x, y+n);merge(x+n,y…