并查集
hncu__lz
既然坚持了这么久,就要坚持到最后~
展开
-
HDU 1213
#includeint map[1001];int sort(int t){if(map[t]!=t)map[t]=sort(map[t]);return map[t];}int main(){int n;scanf("%d",&n);while(n--){int a,b;scanf("%d%d",&a,&b);int i,j,k;原创 2016-03-01 13:54:49 · 228 阅读 · 0 评论 -
hdu 2545 树上战争(并查集)
Problem Description 给一棵树,如果树上的某个节点被某个人占据,则它的所有儿子都被占据,lxh和pfz初始时分别站在两个节点上,谁当前所在的点被另一个人占据,他就输了比赛,问谁能获胜Input 输入包含多组数据 每组第一行包含两个数N,M(N,M<=100000),N表示树的节点数,M表示询问数,N=M=0表示输入结束。节点的编号为1到N。 接下来N-1行,每行2个整数A,原创 2016-08-05 11:05:26 · 298 阅读 · 0 评论 -
hdu 3172 Virtual Friends (map+并查集)
Problem Description These days, you can do all sorts of things online. For example, you can use various websites to make virtual friends. For some people, growing their social network (their friends,原创 2016-08-01 14:36:36 · 1318 阅读 · 0 评论 -
Graph’s Cycle Component (并查集)
Problem Description In graph theory, a cycle graph is an undirected graph that consists of a single cycle, or in other words, some number of vertices connected in a closed chain. Now, you are given a原创 2016-07-29 14:15:09 · 372 阅读 · 0 评论 -
hdu 1856 More is better (并查集)
Problem Description Mr Wang wants some boys to help him with a project. Because the project is rather complex, the more boys come, the better it will be. Of course there are certain requirements.Mr Wa原创 2016-07-28 09:46:36 · 302 阅读 · 0 评论 -
hdu 1829 (并查集)
Problem Description Background Professor Hopper is researching the sexual behavior of a rare species of bugs. He assumes that they feature two different genders and that they only interact with bugs原创 2016-07-27 22:38:46 · 282 阅读 · 0 评论 -
hdu2818 并查集
1、题目大意: john 正在玩积木,有N个积木编号为1、、、N,分成N堆,每堆只包含一个积木,然后做P次操作,操作分为2种, M X Y:把包含X的一堆放到包含Y的一堆上,如果XY同在一堆上,不做处理 C X:计算出X积木下边有多少个积木 每次遇到C操作,输出数量 遇到的问题: 第一个:数据的n有0的点,这个是数据的问题 第二个:有一个比较隐秘的bug,如果给出两块石头,且他们已经属原创 2016-03-28 01:14:59 · 285 阅读 · 0 评论 -
hdu4496 并查集
题意:给定一个图,N个点,M条边,先把给定的M个连成图,然后反过来从第1个开始顺序到M个删边后剩下的多少联通块。 思路:其实我们可以逆向思考,从第M个开始,到第一个依次加边,这样就是相当于简单的并查集了; 代码:#include<stdio.h>int a[10005],reg[10005];int find(int tt){ if(tt!=a[tt]) a[tt]原创 2016-03-25 23:11:14 · 301 阅读 · 0 评论 -
*hdu2473 (并查集的删除)
题意:给定n个点,刚进行两种操作,r如果为M将两个点合并,如果为S将一个得到点与前面已经合并的堆中孤立,问最后点有几堆; 分析:删除一个点,只是将该点独立起来,或者说将该点从所在集合中脱离,而所在集合的结构不变,若真的将该点从集合中删去,会带来很多不必要的麻烦,所以,可以反而添加一个虚拟的点代替独立出来的点,这样,用一个数组hash将每一个点都映射到一个虚拟的点上,之后在虚拟的点(hash)上面操原创 2016-03-24 22:35:10 · 546 阅读 · 0 评论 -
*hdu3038 (带权值并查集)
题目大意:有n次询问,给出a到b区间的总和,问这n次给出的总和中有几次是和前面已近给出的是矛盾的?? 思路:如果我们知道a到b之间的关系,a到c之间的关系,那么我们就可以知道a,b,c任意两个之间的关系,如果我们再知道了d和c之间的关系,那么我们就知道了a,b,c,d之间的关系,但是怎么表示这些关系呢??我们用的是并查集,顺便加一个每一个节点到根的距离,这样的话,任意两个点之间关系就可以通过求与根原创 2016-03-24 01:08:26 · 764 阅读 · 0 评论 -
hdu 5631 (并查集)
题意:众所周知,萌萌哒六花不擅长数学,所以勇太给了她一些数学问题做练习,其中有一道是这样的:给出一张 n 个点 n+1 条边的无向图,你可以选择一些边(至少一条)删除。现在勇太想知道有多少种方案使得删除之后图依然联通。当然,这个问题对于萌萌哒六花来说实在是太难了,你可以帮帮她吗? 思路:让 n 个点联通最少需要 n−1 条边,所以最多只能删除两条边,我们可以枚举删除的这两条边(或者唯一的一条边),原创 2016-03-22 02:11:37 · 341 阅读 · 0 评论 -
hdu5606 (并查集)
题意:一棵树,权值只有0和1,找到每个点与之相距最近的点的个数, (包括这个点自己,也就是说,等价于找每个点与之相距为0的点的个数)。刚开始一直迷惑为什么不考虑一个点与相连的点权都为1的情况,原来点是可以与本身相连距离为0,所以如果点与相连的点距离都为1,则无需考虑,肯定只能与自己相连; 思路:运用并查集,找出点与点距离为0构成的块,并记录根节点的连通数目(包括自己); 代码:#include<原创 2016-03-22 00:45:40 · 458 阅读 · 0 评论 -
hdu1198 并查集
题意:有如上图11种土地块,块中的绿色线条为土地块中修好的水渠,现在一片土地由上述的各种土地块组成,需要浇水,问需要打多少口井。 思路:其实就是求连通的水渠有多少个,就会想到并查集;这里由于每个土地对应四个方向,所以我们就需要从四个方向考虑是否连通,我们可以简化成由第一个开始,那么我们就只需判断每个土地是否与右下连通;然后再根据并查集判断连通的土地共有多少个; 代码:#include<stdio原创 2016-03-21 11:48:11 · 283 阅读 · 0 评论 -
hdu1272 并查集
第一次接触并查集,所以是借鉴别人的; 思路(参考别人的): 如果符合小希的想法则需要满足如下两个条件: 1:保证图是连通的,且连通分量为1( 即从一点可以到任意一点 ) 2:不存在环(包括自环) 因为这是一个无向图,只要保证 顶点数 = 边数+1 , 就可以说明是连通的。如果存在1->2 , 2->3 , 1->3这样的图话,虽然满足了左面的公式,但是已经成了环,所以也不会影响到最后的判断原创 2016-03-20 22:13:32 · 252 阅读 · 0 评论 -
poj 1962 Corporative Network (并查集)
DescriptionA very big corporation is developing its corporative network. In the beginning each of the N enterprises of the corporation, numerated from 1 to N, organized its own computing and telecommun原创 2016-08-20 16:54:44 · 306 阅读 · 0 评论