![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并查集
_C9
咸鱼也要有咸鱼的样子
展开
-
【hdu】5606tree(并查集)
解题思路:找到树中离自己节点最近的点,因为边的权值不是0就是1,要找距离最近我们就把边权都为0的点放进一个集合,最后将每个节点所在的集合中节点的个数进行异或输出就可以了下面附上ac代码#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>#include <cmath>#inclu...原创 2021-05-06 15:54:53 · 61 阅读 · 0 评论 -
hdu_oj1232畅通工程(并查集)
解题思路:并查集裸题,我需要用并查集查找出帮派的个数,最后只需要修帮派个数减一条道路就可以将所有帮派连通起来但是数据量太大需要用scanf下面附上ac代码#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>#include <cmath>#include <string&g...原创 2021-05-05 19:30:07 · 110 阅读 · 0 评论 -
并查集的各种模板(持续更新)
平庸并查集的初始化void init(ll n){ for(ll i=1;i<=n;i++) { fa[i]=i; }}平庸并查集的查找ll find(ll x){ if(fa[x]==x) return x; else find(fa[x]);}平庸并查集的合并void merge(int i,int j){ fa[find(i)]=find(j);}查找的路径压缩优化ll原创 2021-05-05 18:32:29 · 425 阅读 · 0 评论 -
hdu_oj1856More is better(并查集查询一个集合内节点的个数)
解题思路:用并查集统计同一个集合内节点的个数,并查集在维护的时候,在合并时加上一个num数组,初始化为1(因为每个人都是自立门户),用于统计这个老大的帮派中有多少个小弟,如果两个帮派合并,那么帮派中的人数为两个帮派人数的总和下面附上ac代码#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>...原创 2021-05-05 18:17:03 · 97 阅读 · 0 评论 -
【cf】I. Invoking the Magic(并查集+map)
解题思路:这道题目用并查集查找同一集合内节点个数最大的个数是多少,因为数据量很大需要用map映射结果#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>#include <cmath>#include <string>#include <queue>#inc..原创 2021-05-05 10:36:33 · 236 阅读 · 3 评论 -
hdu_oj1213How Many Tables(并查集查找不同集合的个数)
解题思路:并查集模板题,数据量也不是很大,最后只需要知道查询每组测试样例中有多少个元素的老大是他自己就有多少组#include <iostream>#include <cstdlib>#include <cstring>#include <algorithm>#include <cmath>#include <string>#include <queue>#include <set>...原创 2021-05-05 09:19:32 · 98 阅读 · 0 评论 -
【洛谷】P1551 亲戚(并查集)
并查集裸题直接附上ac代码#include <iostream>#include <cstdlib>#include <cstring>#include <algorithm>#include <cmath>#include <string>#include <queue>#include <set>#include <map>#define dbg(a) cout<..原创 2021-05-04 19:51:17 · 74 阅读 · 0 评论 -
并查集题解
格子游戏时间限制: 1000 ms 内存限制: 65536 KB提交数: 3036 通过数: 1823【题目描述】Alice和Bob玩了一个古老的游戏:首先画一个n × n的点阵(下图n = 3)接着,他们两个轮流在相邻的点之间画上红边和蓝边:直到围成一个封闭的圈(面积不必为1)为止,“封圈”的那个人就是赢家。因为棋盘实在是太大了(n ≤ 200),他们的游戏实在是太长了!他们甚至在游戏中都不知道谁赢得了游戏。于是请你写一个程序,帮助他们计算他们是否结...原创 2020-08-06 16:57:41 · 575 阅读 · 0 评论 -
并查集总结
今天重新做了以前做的求最短路径的问题,还好,看过题解之后马上就能想起来了,所以后面就主要看了并查集并查集就是讨论一些有N个元素的集合的问题,我们一般都是在开始的时候让每个元素构成一个单元的集合,然后按照某一种顺序将属于同一组的元素所在的那个集合合并,在这个过程中要反复查找一个元素在那个集合里,简单来说就是这一个元素可能属于很多个集合,在这个过程中数据量 非常大 ,如果用普通的方法直接模拟的话就可能会超内存,就需要用并查集的 方法解题目。今天看了一个大佬 的博客,实在是太生动形象了,而且觉得 看了之后转载 2020-08-04 20:18:39 · 178 阅读 · 0 评论 -
图论并查集小结
这周学习了并查集的有关内容,简单说一下并查集并查集主要用于处理一些不相交集合的合并问题。。使用并查集时,第一步会存在一组不相交的动态集合,一般都会使用一个整数表示集合中的一个元素。每个集合可能包含一个或多个元素,并选出集合中的某个元素作为代表。每个集合中具体包含了哪些元素是不关心的,具体选择哪个元素作为代表一般也是不关心的。我们关心的是,对于给定的元素,可以很快的找到这个元素所在的集合(...原创 2020-04-25 13:54:34 · 122 阅读 · 0 评论 -
【洛谷】P3367 【模板】并查集(路径压缩+按秩合并优化)
解题思路:并查集模板,需要路径压缩进行优化,否则会超时#include <iostream>#include <cstdlib>#include <cstring>#include <algorithm>#include <cmath>#include <string>#include <queue>#include <set>#include <map>#define d..原创 2021-05-04 19:17:19 · 170 阅读 · 0 评论