随笔分类 - 数据结构————并查集
POJ 1182 食物链(带权并查集)
摘要:题目链接题意 : 中文题不详述。思路 : 转载自…… Part I - 权值(relation)的确定。 我们根据题意,森林中有3种动物。A吃B,B吃C,C吃A。 我们还要使用并查集,那么,我们就以动物之间的关系来作为并查集每个节点的 权值。 注意,我们不知道所给的动物(题目...
阅读全文
HDU 1558 Segment set (并查集+线段非规范相交)
摘要:题目链接题意 : 如果两个线段相交就属于同一集合,查询某条线段所属集合有多少线段,输出。思路 : 先判断与其他线段是否相交,然后合并。 1 //1558 2 #include 3 #include 4 #include 5 #include 6 #define eps 1e-8 ...
阅读全文
HDU 1116 || POJ 1386 || ZOJ 2016 Play on Words (欧拉回路+并查集)
摘要:题目链接题意 : 有很多门,每个门上有很多磁盘,每个盘上一个单词,必须重新排列磁盘使得每个单词的第一个字母与前一个单词的最后一个字母相同。给你一组单词问能不能排成上述形式。思路 :把每个单词看成有首字母指向尾字母的有向边,每个字母看成一个点,题中要求等效于判断图中是否存在一条路径经过每一条一次且仅一...
阅读全文
HDU 1198 Farm Irrigation
摘要:点我看题目题意 :给你ABCDEFGHIJK 11个块,块上的图案如图所示,然后给你输入,将这些方块按照输入摆好,问你有几个联通块。思路 :这个其实是个最简单的并查集,但是因为给的形式不好处理所以看不太出来,只要把那些图案处理好了就OK了。会神告诉我上下左右标记一下就行,像A可以标记为1,0,1,0...
阅读全文
POJ 2492 A Bug's Life(并查集)
摘要:http://poj.org/problem?id=2492题意 :就是给你n条虫子,m对关系,每一对关系的双方都是异性的,让你找出有没有是同性恋的。思路 :这个题跟POJ1703其实差不多,也是需要一个数组来存跟父亲节点的关系,需要两个集合来存是否有关系,在最后稍微变一下形就OK了。#include#include#include#includeusing namespace std;int pre[100010];//代表着父亲结点,如果D后边是a b,则pre[b]=a ;int father[100010] ;//代表着这个点和父亲结点的关系,是属于同一类还是不同团伙int m,n ;
阅读全文
POJ 1703 Find them, Catch them(并查集)
摘要:http://poj.org/problem?id=1703题意 :有两个黑帮团伙。有n个团伙成员,现在并不知道他们分别属于哪个团伙。给你一些信息,信息中包含两个人的编号,表示这两个人分属不同团伙,然后给你两个人的编号,问你他们俩是不是属于同一个团伙。思路 : 并查集。因为这个题给出的每个关系都代表着两个人属于不同的团伙,所以没办法像普通的并查集那样,只用两个集合就行,例如,给你(1,2)(5,6)(1,5),根据关系我们可以知道2,5属于一个团伙,1,6属于一个团伙,但是你并没有办法表示。书上介绍了一种常用的做法:只要两者关系确定了,就将他们放入同一集合中,再另外增加一个关系数组father
阅读全文