![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并查集
三寸雪
这个作者很懒,什么都没留下…
展开
-
ZOJ 3261 Connections in Galaxy War 【逆向并查集】
ZOJ 3261 Connections in Galaxy War 题目链接:vjudge传送门 题目大意: 一共有N个星球,每个星球有一定的power值,两个星球之间可以建立联系,当某个星球寻求帮助时,是向与它有直接或间接联系的星球中且power值最大的星球寻求帮助,如果两个星球之间的联系被destory,则这两个星球将失去直接联系,只可能存在间接联系。 具体思路: 完全想不到,还可以离线逆向...原创 2020-02-21 02:24:11 · 460 阅读 · 0 评论 -
POJ 1984 Navigation Nightmare【带权并查集 二维】
POJ 1984 Navigation Nightmare 题目链接: vjudge传送门 题目大意: 依次给定二维坐标轴上的若干点的相对坐标,问在指定的前i次数据前,能否得到两点之间的距离(横纵坐标之差的绝对值之和)。 具体思路: 并查集,用两个权值数组hori[],vert[],分别维护水平方向和垂直方向上相对于根节点的相对距离,然后对每问两点的距离进行建树和输出。如果是一次query就建图一...原创 2020-02-21 00:39:32 · 329 阅读 · 0 评论 -
POJ 2912 Rochambeau 【枚举+带权并查集】
POJ 2912 Rochambeau 题目链接:vjudge传送门 题目大意: 给定n个孩子,编号[0,n),以及m组两人剪刀石头布的结果,n个人中有一个孩子是裁判,剩余的人被分成3组,通一组人出同一个手势,裁判也参与见到石头布游戏,只不过有它的那组结果是随机给的(即正确与否不保证),问能否判断出哪个孩子是裁判,若可以求出最少需要前多少条语句可以判断出。 具体思路: 带权并查集,权值数组的维护与...原创 2020-02-19 19:38:34 · 367 阅读 · 0 评论 -
HDU 1272 小希的迷宫 【并查集+判无向无环连通图】
HDU 1272 小希的迷宫 题目链接:vjudge传送门 具体思路: 做过Is It A Tree后就知道,这题比它简单点,只需要把判断入度的条件去掉,感兴趣的这里是题解 这题具体是用并查集维护 新加入一条边时,判断两点是否同一集合 是,则构成有环图,不满足 否,则将两点加入同一集合中 最后判断一下是否是空图(满足),或者非连通图(不满足),即可 具体代码: #include<iostre...原创 2020-02-19 16:58:27 · 410 阅读 · 4 评论 -
POJ 1308 Is It A Tree?【判断树 并查集】
POJ 1308 Is It A Tree? 题目链接:vjudge传送门 题目大意: 给定若干条有向边,判断所给的所有边是否能组成一颗树(包含空树) 具体思路: 离散数学图论知识,只有一个结点入度为0,其它结点入度均为1的图是树,保存每个点的入度,最后判断即可 也可按树的定义来,用并查集来维护 新加入的边,被指向的结点必须是并查集中的祖先结点(排除入度大于1和环的情况),加入完后把两点合并 处理...原创 2020-02-19 16:08:15 · 373 阅读 · 0 评论 -
poj 2492 A Bug's Life【带权并查集】
poj 2492 A Bug’s Life 题目链接:vjudge传送门 题目大意: 给定n个编号过的bug,以及m对数a,b 表示两个bug之间可以交配,问从给定的数据中能否判断出存在同性的bug也可以交配 具体思路: 此题与poj 1733类似,增加数组对性别关系进行维护,通过异或实现 具体代码: #include<iostream> #include<algorithm&g...原创 2020-02-17 18:35:06 · 342 阅读 · 0 评论 -
POJ 1733 Parity game【带权并查集+离散化处理】
POJ 1733 Parity game 题目大意: 按顺序给定若干描述:区间l到r中1的个数是奇数个(偶数个)。 问:从哪一条开始,下一条与前面的相违,错误了。若全是对的,则输出描述条数。 具体思路: 这题与HDU 3080很相似,思路是一样的,只是路径压缩的时对权值的处理不一样,这里需要用异或来实现。 附上该题题解:How many answers are wrong 不同的是这里的n是1e9...原创 2020-02-17 00:48:47 · 389 阅读 · 0 评论 -
POJ 1456 Supermarket【贪心+并查集优化】
POJ 1456 Supermarket 题目大意: 给你 N 件不同的商品,每件商品最多可以买一次。 每件物品对应两个值 pi di pi 表示物品的价值,di 表示可以买的最迟时间(也就是第一天到第 di 天都可以买这件物品) 每天最多可以买一件物品,问你可以得到的最大价值。 具体思路: kuangbin的题解,用并查集实现了链表搜索的O(1)时间复杂度,Orz 原文: 这里其实用贪心做...原创 2020-02-16 21:56:14 · 387 阅读 · 0 评论 -
POJ 1182 食物链 【带权并查集 (种类并查集)】
HDU 3038 How Many Answers Are Wrong 比较经典的带权并查集,能让你真正理解带权并查集: 诠释是这样的:在对并查集进行路径压缩和合并操作时,这些权值具有一定属性,即可将他们与父节点的关系,变化为与所在树的根结点关系。也就是说,权值代表着当前节点与父节点的某种关系(即使路径压缩了也是这样),通过两者关系,也可以将同一棵树下两个节点的关系表示出来。 具体思路: 话不...原创 2020-02-16 18:44:56 · 391 阅读 · 0 评论 -
HDU 3038 How Many Answers Are Wrong【带权并查集】
HDU 3038 How Many Answers Are Wrong 原题链接: vjudge传送门 题目大意: 有N个数,不知道它们具体的值,但是知道某两个数之间(包括这两个数)的所有数之和, 给出M个区间即区间和,需要判断有多少个区间和与前边已知的区间和存在矛盾。 例如给出区间和[1,5]为30,[3,5]为15,再给出[1,3]为20,显然[1,3]的值应该为30-15=15,故该答案错误...原创 2020-02-13 17:18:40 · 469 阅读 · 0 评论 -
HDU 1213 How Many Tables【并查集基础】
HDU 1213 How Many Tables 原题链接:vjudge传送门 题目大意: 给定n个人,m组关系(两人之间),关系可以传递,问总最终共有几组关系 eg:若a和b有关系,b和c有关系,则a,b,c都有关系,且为同一组关系 具体思路: 并查集 具体代码: #include<iostream> #include<cstdio> #include<algori...原创 2020-02-13 14:20:10 · 289 阅读 · 0 评论 -
POJ 1611 The Suspects 【并查集基础】
POJ 1611 The Suspects 题目大意: 有n个人,m个社团,有一种病毒具有传染性,假设一个人可能感染,那么它所属社团的所有人都可能感染, 假设0号这个人疑似感染了病毒,问总共有多少人可能感染病毒 具体思路: 并查集模板题 具体代码: #include<iostream> #include<cstdio> #include<algorithm> u...原创 2020-02-13 13:57:41 · 464 阅读 · 3 评论 -
POJ 2246 Wireless Network 【并查集 基础题】
POJ 2246 Wireless Network 题目链接:vjudge传送门 题目大意: 给定N个坏掉的电脑以及坐标,规定通信距离为L,对每个电脑进行两个操作,维修或测试两个电脑是否可以通信, 给定若干个操作,判断其中的测试操作是否成功 具体思路: 对于O操作,每修理一个电脑就检测该电脑与所有被检测过的电脑之间能否通信,可以就把两个电脑加入同一个集合中 对于S操作,判断两台电脑是否在都修理过且...原创 2020-02-13 13:03:29 · 484 阅读 · 2 评论