
并查集
协奏曲❤
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HDU - 1863 畅通工程
HDU-1863 畅通工程 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1863 大意:这个题就是一个最小生成树的问题,这里通过构建一个结构体数组来存储道路的起点和终点,以及这条路的费用。在操作中,实质上还是涉及了并查集的知识,在判断出两个村庄的祖先是不是同一个地方是时候进行merge函数操作,但合并的村庄数目达到了总数目时输出最后的结果即可。但是...原创 2018-11-03 14:16:10 · 167 阅读 · 0 评论 -
并查集的简单操作
并查集的简单操作 个人感觉并查集就是一个找爹的感觉,要把同一类的祖先找齐,就是寻找到是一个家族的人,又是可能某些数据被该家族踢出,但是实质上还是对数组下标的操作。 1.最普通的并查集操作 例题:HDU1213 问题:就是问认识的人可以坐在一起,问最少需要多少个桌子,这些人可以全都坐下 代码: #include<iostream> #include<cstdio> #incl...原创 2018-11-02 15:50:46 · 154 阅读 · 0 评论 -
并查集的删除操作
并查集删除操作 因为在进行操作时,在原有的赋值基础上对数据下标进行改变,若是改变根节点,那么结果可能产生意想不到的错误(其实可以想到),所以就先把所有的数据先放到类似于一个盒子的里面,然后在进行下标的更改操作,其实还是对数组的操作。 几个关键点: int index; //存放盒子节点使用到哪一个了 void init(int n) { index = n; for(int i...原创 2018-11-02 15:57:16 · 624 阅读 · 0 评论 -
并查集的合并操作
并查集的合并操作 例题:CodeForces - 566D D - Restructuring Company 题目需要注意:并查集合并的时候并不是简单地两个点之间的合并,其中还加入了区间的操作,如果还是按照原来的合并操作,那么时间复杂度会比较高 提示: 提示:很显然是并查集,只是type==2是对应的是区间操作,但发现如果是在一个集合里了还要操作就是浪费,可以把已经在一个区间的压缩,用一个p...原创 2018-11-02 16:01:31 · 2251 阅读 · 0 评论 -
并查集的使用,臭虫同性恋问题
并查集臭虫同性恋经典问题 这个问题也可以理解为:敌人的敌人是朋友问题,这个题总的来说就是进行两个并查集的增添问题,敌人的敌人是朋友,类似,如果出现了敌人的敌人是敌人的情况,那么就输出这种情况就可以了。 例题 :poj-2492 -A Bug’s Life 代码: #include<stdio.h> #include<string.h> #include<iostrea...转载 2018-11-02 16:06:51 · 1198 阅读 · 0 评论