
并查集
文章平均质量分 78
Aerolite坠落
这个作者很懒,什么都没留下…
展开
-
小鑫的城堡
题目描述从前有一个国王,他叫小鑫。有一天,他想建一座城堡,于是,设计师给他设计了好多简易图纸,主要是房间的连通的图纸。小鑫希望任意两个房间有且仅有一条路径可以相通。小鑫现在把设计图给你,让你帮忙判断设计图是否符合他的想法。比如下面的例子,第一个是符合条件的,但是,第二个不符合,因为从5到4有两条路径(5-3-4和5-6-4)。输入多组输入,每组第一行包含一个整数m(原创 2014-02-21 18:47:12 · 884 阅读 · 0 评论 -
HDU 3635 Dragon Balls(带权并查集)
题目地址:HDU 3635加权并查集水题。用num数组维护该城市有多少龙珠,用times数组维护每个龙珠运输了多少次。num数组在合并的时候维护。times数组由于每个都不一样,所以要在找根的时候递归来全部维护。最终,x龙珠所在的城市就是x节点所在的根,x结点所在的跟的num数组值是该城市的龙珠数。times[x]为该龙珠运输了多少次。代码如下:#include #inclu原创 2014-10-02 19:26:16 · 1065 阅读 · 0 评论 -
HDU 3172 Virtual Friends(带权并查集)
题目地址:HDU 3172带权并查集水题。每次合并的时候维护一下权值。注意坑爹的输入。。代码如下:#include #include #include #include #include #include #include #include #include #include #include using namespace std;#define LL lo原创 2014-10-02 17:09:59 · 974 阅读 · 0 评论 -
HDU 1829 && POJ 2492 A Bug's Life(种类并查集)
题目地址:HDU 1829 POJ 2492这个题可以用两种方法做,第一眼看完题是觉得用dfs染色判断二分图。然后又写的刚学的种类并查集。原来并查集可以这样用,真是神奇。。dfs染色代码:#include #include #include #include #include #include #include #include #include #inclu原创 2014-10-01 18:33:41 · 1088 阅读 · 0 评论 -
POJ 1182 食物链(种类并查集)
题目地址:POJ 1182一道很经典的种类并查集的题目。利用互相之间的关系来进行权值的维护。代码如下:#include #include #include #include #include #include #include #include #include #include #include using namespace std;int bin[600原创 2014-10-01 19:06:16 · 931 阅读 · 0 评论 -
POJ 1703 Find them, Catch them(种类并查集)
题目地址:POJ 1703种类并查集水题。代码如下:#include #include #include #include #include #include #include #include #include #include #include using namespace std;int bin[600000], rank[600000];int f原创 2014-10-01 19:37:44 · 1193 阅读 · 0 评论 -
POJ 1988 Cube Stacking (种类并查集)
题目地址:POJ 1988 这道题的查找合并的方法都能想的到,就是一点没想到,我一直天真的以为查询的时候,输入后能马上输出,这样的话在合并的时候就要所有的结点值都要算出来,但是经过路径压缩之后,没办法全部都处理到,如果不压缩妥妥的TLE。。于是看了看网上的题解。才发现自己是多么的天真(ben,四声)。。在查询的时候只要找一次跟就可以了。。这样不需查询的也就没必要处理出来。反而更省时。原创 2014-10-01 21:24:54 · 1025 阅读 · 0 评论 -
HDU 1856 More is better(并查集+离散化)
题目地址:HDU 1856水题。由于标号范围太大,而数据数只有10w,所以要先进行离散化。然后就是裸的并查集了。代码如下:#include #include #include #include #include #include #include #include #include #include #include using namespace std;i原创 2014-09-30 14:34:28 · 904 阅读 · 0 评论 -
HDU 2120 Ice_cream's world I(并查集)
题目地址:HDU 2120这题虽然字数不多,但就是看不懂。。意思是求最多有多少个被墙围起来的区域。显然就是求环的个数。然后用并查集求环个数就可以了。代码如下:#include #include #include #include #include #include #include #include #include #include #include usin原创 2014-09-30 15:57:08 · 984 阅读 · 0 评论 -
POJ 2513 Colored Sticks(字典树+并查集连通性+欧拉回路)
题目地址:POJ 2513刚开始没想到字典树,用的map函数一直TLE,由于上一次的签到题由于没想到字典树而卡了好长时间的深刻教训,于是过了不久就想起来用字典树了,(为什么是在TLE了5次之后。。T^T)是在然后把map改成了字典树,然后就过了。这题居然不知不觉的用上了欧拉回路。。其实当时我是这样想的。。因为相互接触的必须要相同,所以除了两端外,其他的都是两两相同的,所以除了两端的颜色外其原创 2014-07-28 21:04:13 · 1112 阅读 · 0 评论 -
POJ 2263 Heavy Cargo(二分+并查集)
题目地址:POJ 2263这题是在网上的一篇关于优先队列的博文中看到的。。但是实在没看出跟优先队列有什么关系。。我用的二分+并查集做出来了。。。二分路的载重量。然后用并查集检查是否连通。代码如下:#include #include #include #include #include #include #include #include #includeusing原创 2014-08-02 20:39:04 · 1205 阅读 · 0 评论 -
POJ 1611The Suspects(简单并查集)
题目地址:http://poj.org/problem?id=1611网络流先慢慢看着。原创 2014-06-11 17:16:36 · 721 阅读 · 0 评论 -
大家快来A水题
题目描述(1(1多组输入。每组第一行输入N,M。接下来M行每行,每行两个整数u,v代表岛u与v之间有一条路。输出 每组数据输出一个整数,代表部落数。示例输入3 11 23 21 21 3示例输出21提示#include #include int bin[100000],a[10000];int findx(原创 2014-02-28 21:36:50 · 969 阅读 · 0 评论 -
电影节
题目描述某届电影节评选电影,共有两部电影进入最后评选环节,有n名观众,每个人有一次投票的机会,每个人都按照规则投给其中一部电影。为了了解情况,记者随机询问了一些人,一共询问了m次,特别神奇的是,记者每次都询问两个人,而且这两个人都把票投给了同一部电影,观众编号为1~n。输入多组输入,每组第一行是两个整数n,m (2 输出对于每一组输入,输出一行,如果观众c和原创 2014-02-21 18:45:49 · 850 阅读 · 0 评论 -
Ubiquitous Religions
题目描述There are so many different religions in the world today that it is difficult to keep track of them all. You are interested in finding out how many different religions students in your univers原创 2014-02-21 18:48:29 · 754 阅读 · 0 评论 -
HDU 2473 Junk-Mail Filter(并查集的删除操作)
题目地址:HDU 2473这题以前碰到过,没做出来。。现在又做了做,还是没做出来。。、、这题涉及到并查集的删除操作。想到了设一个虚节点,但是我把虚节点设为了要删除的点的父节点,一直是栈溢出,目测是无限递归了。看了看别人的做法, 原来只要建一个映射就可以了,虚节点是作为的新的映射,每次删除一个点,就把他映射到一个新的点上去。代码如下:#include #include #incl原创 2014-10-02 10:38:27 · 1242 阅读 · 0 评论