Time: 20190924

class UnionFind:def __init__(self, nums):# 初始时元素是自己的大bossself.pre = list(range(nums))self.size = [1] * numsdef union(self, x, y):px = self.find(x)py = self.find(y)# 是的px这组的size比较小if self.size[px] > self.size[py]:px, py = py, px# 小的团队交给大的self.pre[px] = pyself.size[py] += self.size[px]def find_recur(self, x):# 递归写法并没有执行路径压缩~if self.pre[x] != x:self.pre[x] = self.find(x)return self.pre[x]def find(self, x):r = xwhile self.pre[r] != r:r = self.pre[r]i = xwhile i != r:tmp = self.pre[i]self.pre[i] = ri = tmpreturn r# Driver code
uf = UnionFind(10)
print(uf.pre)
#
uf.find(1)
print("执行find之后:", uf.pre)
uf.union(1,2)
print("执行Union之后:", uf.pre)
uf.union(2,3)
print("执行Union之后:", uf.pre)
uf.union(3, 4)
print("执行Union之后:", uf.pre)# 查看元素的父亲
# print(uf.find(1)) # 4
# print(uf.find(2)) # 4
# print(uf.find(3)) # 4
# print(uf.find(4)) # 4for i in uf.pre:print(uf.find(i))

2019.10 Update:

第一届PAT算法直播课培训班招募帖,欢迎点击查看详情、

END.

关于并查集的Python实现代码相关推荐

  1. 蓝桥杯 并查集汇总学习 及其代码

    蓝桥杯 并查集汇总学习 及其代码 这里记录一下在刷蓝桥杯的并查集的题时写的一些代码 蓝桥幼儿园 蓝桥幼儿园 :https://www.lanqiao.cn/problems/1135/learning ...

  2. 并查集(python代码实现)

    并查集 并查集是一种树型的数据结构,用于处理一些不相交集合的合并与查询问题.主要两种操作(合并和查询): 根据两个元素的关系合并两个集合: 查询两个元素是否存在关系(是否在同一个集合中)和查询节点的根 ...

  3. 并查集三种Java代码实现

    @代码模板 package Algorithm;public class UF {private int[] id;//连通分量的idprivate int count;public UF(int n ...

  4. LeetCode题库:并查集问题(Python语言实现)

    并查集相关知识 并查集常用模板 class UnionSet:def init_tree(self,n):self.fa = [i for i in range(n)] # 必要,记录根节点,也可能是 ...

  5. python【数据结构与算法】并查集引入

    文章目录 1 并查集 2 策略 3 代码 1 并查集 Disjoint Set,实际上字面翻译是不相交的集合. 中文名 "并查集" 实际上源自其基本操作: union(X,Y):求 ...

  6. BZOJ 2342 [Shoi2011]双倍回文(manacher+并查集)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2342 [题目大意] 记Wr为W串的倒置,求最长的形如WWrWWr的串的长度. [题解] ...

  7. 算法提高课-图论-欧拉回路和欧拉路径-AcWing 1185. 单词游戏:判断有向图是否存在欧拉路径、并查集

    文章目录 题目解答 题目来源 题目解答 来源:acwing 分析: 把每个单词看成一条边!!!首字母到尾字母的一条边,最多共有26个点(26个小写的英文字母),然后问能否把所有边串起来. 其实,对欧拉 ...

  8. PAT甲级1126 Eulerian Path:[C++题解] 欧拉路径、并查集,测试点4有问题请进来

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 欧拉图: 1)连通 2)度都为偶数 半欧拉图:欧拉路径:2)连通2) 度为奇数的结点有两个,其他度都是偶数 非欧拉图:不是欧拉图和半 ...

  9. 牛客多校3 - Operating on a Graph(并查集+链表合并)

    题目链接:点击查看 题目大意:给出一个由 n 个点和 m 条边组成的无向图,每个点初始时都有颜色 i ,i ∈ [ 0 , n - 1 ] ,接下来有 q 次操作,每次操作会给出一种颜色 x ,分两种 ...

最新文章

  1. 交叉分解(Cross decomposition)、典型关联分析(Canonical Correlation Analysis,CCA)、偏最小二乘回归PLS
  2. github使用教程及小问题
  3. CentOS7性能监控系统安装
  4. Error:(3, 32) java: 程序包org.springframework.boot不存在
  5. jsp 学习 第2步 - tag 使用
  6. 基于 Spring Boot 的车牌识别系统(附项目地址)ba
  7. GPU编程与CG语言之阳春白雪下里巴人 读书笔记
  8. vue-cli搭建和“Cannot find module npm-cli.js” 、“operation not permitted” 、 deprecated coffee-script等错误
  9. 荣耀赵明评苹果发布会掉队5G:意料之中 情理之外
  10. MSComm控件过程中内存溢出和GetOneDimSize出错的问题
  11. Ant :Property
  12. html里面布局的优劣,HTML与CSS布局技巧总结
  13. Firefox火狐浏览器怎么设置中文 火狐浏览器语言设置方法
  14. 邮箱app哪个好用,能在手机用的邮箱app推荐下
  15. 协议分析(微信网页版 wx2.qq.com)
  16. 同时投掷两个不同面的骰子
  17. PP实施经验分享(24)——ECN应用及系统操作
  18. 维护异地恋的十大方法
  19. python opencv图片拼接、特征点匹配
  20. 1079. 活字印刷

热门文章

  1. 数据结构上机实践第14周项目1(3) - 验证算法(二叉排序树)
  2. caffe学习日记--lesson5: VS下新建工程,探究Blob
  3. insert oracle用法,insert into select的实际用法,insertselect
  4. java装箱与拆箱_【转】java 自动装箱与拆箱
  5. 如何打造领英朋友圈_领英点赞,请摆好姿势!
  6. kotlin协程_Kotlin协程
  7. motion filter_Android Motion布局
  8. iOS UICollectionView示例教程
  9. eclipse.ini vm参数– eclipse.ini文件位置Mac,Windows
  10. Spring @Repository批注