Union-Find 算法,也就是常说的并查集算法,主要是解决图论中「动态连通性」问题的。 什么是动态连通性? 对于一幅图中,各个节点是否是相连的?如果不相连,就把他们连起来。涉及到几个操作: union:连接节点p和节点q find:查找节点p的父节点 connected:判断节点p和节点q是否是 ...
分类:
编程语言 时间:
2021-01-21 10:49:02
阅读次数:
0
官方题解:https://leetcode-cn.com/problems/number-of-provinces/solution/sheng-fen-shu-liang-by-leetcode-solution-eyk0/ 547. 省份数量 有 n 个城市,其中一些彼此相连,另一些没有相连。如 ...
分类:
其他好文 时间:
2021-01-20 12:14:19
阅读次数:
0
并查集结构 解决部分节点存在先后顺序的问题。 初始化 把每个点所在集合初始化为其自身。 通常来说,这个步骤在每次使用该数据结构时只需要执行一次,无论何种实现方式,时间复杂度均为O(N)。 查找 查找元素所在的集合,即根节点。 合并 将两个元素所在的集合合并为一个集合。 class UnionFind ...
分类:
其他好文 时间:
2021-01-19 12:05:28
阅读次数:
0
public class test11 { public static void main(String[] args) { int [][]grid={{1,0,0,0},{1,1,0,0}}; int [][]hits={{1,1},{1,0}}; int []result=hitBricks( ...
分类:
其他好文 时间:
2021-01-18 10:36:45
阅读次数:
0
原题链接 考察:拓扑排序(?) 这道题压根不用判断是否成环如果判断了反而是错的(WA了3次),只需要判断入度==0的点是否只有一个就行 易错: 判断成环 这组测试数据证明这个是错的 a b,b c,c b 这只是说明bc不能当冠军,但是a可以 反复提醒:迭代器元素是pair,如果要用first se ...
分类:
其他好文 时间:
2021-01-13 10:37:03
阅读次数:
0
城市和城市连在一块,有多少个省? 一群人里面自己和自己亲戚连在一块,有多少组亲戚? 你俩是不是一个小区的? 他俩是不是有一腿 以上所有问题,抽象,概括为分组问题 老并查集了 这里引用一个知乎大佬的并查集讲解,gang的非常好,我就不赘述了。 并查集讲解 大家主要了解一下并查集的两种优化方法,路径压缩 ...
分类:
其他好文 时间:
2021-01-08 11:38:43
阅读次数:
0
好久没写博客了 这次准备在 cnblogs 和 我的博客 上同步更新~ # 题面 一个 \(n\) 个点 \(m\) 条边的 DAG,有若干个特殊点,边有权值。 一个单词定义为从点 \(1\) 出发到达一个特殊点的路径上,边权按访问顺序构成的一个序列。 \(Q\) 次询问,每次给出 \(k\),求所 ...
分类:
其他好文 时间:
2021-01-08 11:32:53
阅读次数:
0
CF 603 E题解 又是我做不出来的题。 这题我分析到了“对于每一个询问,查询最小的bound,使得将$w\leq bound$的边都加入,使得所有联通快都是偶数”这一步,然后就卡住了。 可以发现,所有询问的答案不增的,若设无解为$\infty$。 然而还是不会做。 不过我们回忆一下“决策单调性” ...
分类:
其他好文 时间:
2021-01-08 11:30:38
阅读次数:
0
介绍 并查集是一种特殊的树结构,示例图如下 可以很方便的进行以下两种操作:以上图为例 判断元素6和元素4是否属于同一组, 合并元素6和元素4所在的组 代码实现 public interface UF { /** * 容量 */ int size(); /** * 是否已连接 */ boolean c ...
分类:
编程语言 时间:
2021-01-07 11:59:23
阅读次数:
0
原题链接 考察:并查集基础 在读入学生团体的时候,没必要用数组存储,直接将他们并入树中即可,注意:当我们计算人数的时候,已经在一个集合中的人不能重复计算 当时看y总犯了这个错误,结果自己写又错了233 1 #include <iostream> 2 #include <cstdio> 3 using ...
分类:
其他好文 时间:
2021-01-06 11:59:44
阅读次数:
0