首页 > TAG信息列表 > rootY

LeetCode - 839 相似字符串组

class Solution { String[] copy; public int numSimilarGroups(String[] strs) { int n = strs.length; copy = strs; UnionFind uf = new UnionFind(n); for(int i =0;i < n-1;i++){ for(int j = i+1;j<n;j++)

并查集专题 杭电OJ1232 灵巧求并和路径压缩

并查集也叫不相交集合,可以描述把一个集合通过等价关系(满足自反性、对称性和传递性的关系)划分为若干个等价类这一过程。并查集只有两个操作find和union: find返回一个元素所属的等价类,union合并两个元素所在的等价类。 以杭电OJ1232题为例,说明并查集的两种实现和后一种实现的

Leetcode 1489找到最小生成树李关键边和伪关键边

题目定义: 给你一个 n 个点的带权无向连通图,节点编号为 0 到 n-1 ,同时还有一个数组 edges , 其中 edges[i] = [fromi, toi, weighti] 表示在 fromi 和 toi 节点之间有一条带权无向边 。最小生成树 (MST) 是给定图中边的一个子集,它连接了所有节点且没有环,而且这些边的权值

图解并查集

前言 并查集是一种非常有用且高效的数据结构,千万不要被这个极具专业性的名字吓到了,它的算法思想和代码实现都非常简单,不需要花太大力气就可以轻松掌握。下面就通过画图等方式为大家介绍一下这种神奇的数据结构。 一、 图解并查集 并查集有两个英文名:1、Disjoint Set,2、Union

「赛后总结」AtCoder Beginner Contest 177

题意 & 题解 A Don't be late 题意:给你路程,时间限制,速度,问你能不能在时间限制内走路程那么远。 题解:数学题?物理题? B Substring 题意:给你两个字符串 \(s,t\),问你最少更改 \(s\) 几次能使得 \(t\) 是 \(s\) 的字串。 题解:因为字符串长度小于 \(1000\) 直接暴力枚举 \(t\) 出现在 \(s

并查集

并查集为森林的结构。有多棵多叉树,每个树的根结点定义为这棵树中元素的代表结点。 用于查询两个点是否在同一集合内,以及合并两个集合。 并查集妙用,如白雪皑皑和求和并替换。 带有偏移量的并查集,如银河英雄传说和食物链。 \(code\): int find(int x) { return fa[x]==x?fa[x]:fa

洛谷 P1396 营救

目录 题目 思路 $Code$ 题目 P1396 营救 思路 并查集,将读入的边按拥挤度从小到大排序,一开始$s$和$t$在不同的集合中,然后从小到大枚举每一条边,如果这条边的起点与终点不在同一集合内(不连通),就合并,每合并一次判断$s$和$t$是否在同一集合内(连通),如果$s$和$t$连通了,当前边的拥挤