【POJ - 1182】食物链(并查集) 食物链 Descriptions 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。 现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。 有人用两种说法对这N个动物所构成的食物链关系进行描述: 第一种说法是...
食物链 POJ - 1182 (并查集的两种写法) 这是一个非常经典的带权并查集,有两种写法。 1 边权并查集 规定一下,当x和y这条边的权值为0时,表示x和y是同类,当为1时,表示x吃y,当为2时,表示x被y吃。 一共有三种状态,如图,当A吃B,B吃C时,C必须吃A,路径压缩后,A被C吃。 然后就是带权并查集的模板了。
思路 该问题是种类并查集问题,我们需要对食物链中的关系进行分析。 如果仅仅是要求分析出有几个物种的话,直接使用并查集的模板套上去就行了。但是,由于本题需要计算出哪些动物是同种、以及不同种类动物间的捕食关系,还要判断当前输入的信息和之前已经存在的是否产生冲突,因此,我们需要拓宽并查集的范围,来处理上述信息。
poj1182 食物链(经典并查集) 题意:中文题 思路;最详细的题解 #include <cstdio> #include <queue> #include <cstring> #include <iostream> #include <cstdlib> #include <algorithm> #include <vector> #include #include <string> #include <set> #include <ctime> #include <cmath> #include <cctype>...
POJ 1182 食物链——并查集 #include 挑战程序设计88页原题 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> usingnamespacestd; constintmaxn=150000+10; intpar[maxn],ran[maxn]; voidinit(intn) { for(inti=0;i<=n;i++) {...
POJ1182 食物链(种类并查集) 食物链 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 85027 Accepted: 25416 Description 动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形。A 吃 B, B 吃 C,C 吃 A。 现有N 个动物,以 1-N 编号。每个动物都是 A,B,C 中的一种,但是...
并查集-poj-1182 简介:poj-1182-食物链 //2014.4.11 HDOJ携程编程大赛预赛第二场第一题 Description 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。 现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。 有人用两种说法对这N...
对于每只动物i创建3个元素i-A,i-B,i-C,并用3×N个元素建立并查集,维护如下信息:1、i-X表示i属于X2、如果i-A和j-B在同一个组里,那么如果i属于A,j就一定属于B。如果j属于B,i就一定属于A。我们对每条信息进行如下操作:1、如果x或者y比N大或者小于1,则答案+12、x和y属于同一种类。如果已知x和y不...
另: 虽然已经过了好 多的人了,但是感觉今天学到的思路太经典了, 感谢 alpc50 大牛,使得我对并查集的应用又前进了一步~~~ 首先建议来看本文的 ACMer 们去做做 poj1988,思路同本文类似 的说~~~ 刚拿到这道题,我的想法很单纯:开三个并查集,分别保存同类、 食物、天敌,然后每次归并都分别判断处理。这样...
带权并查集是结点存有权值信息的并查集。权值使关系可以量化,也就是说,权值代表着当前节点与父节点的某种关系,通过两者关系,也可以将同一棵树下两个节点的关系表示出来。而一般并查集只能判断属于某个集合。 种类并查集 一般并查集可以判断一种关系,即属于这种关系或不属于这种关系,比如朋友的朋友是朋友。但比如敌人的...