🎉并查集
2022-5-29
| 2023-5-15
0  |  阅读时长 0 分钟
type
status
password
date
slug
summary
category
URL
tags
icon

Union-Find 算法,也就是常说的并查集算法。适合于判断,给出一组结点,判断他们是否联通。从判断是否为图(一个节点的两个边都会指向同一节点–构成三角形从而不再是树)到岛屿问题(如果节点不与其它节点联通,则会孤立成一个岛屿)。Union-Find 算法的 API主要有以下两个:

原理

notion image

优化

平衡性优化

我们一开始就是简单粗暴的把e1所在的树接到e2所在的树的根节点下面,那么这里就可能出现「头重脚轻」的不平衡状况,比如下面这种局面:
notion image
长此以往,树可能生长得很不平衡。我们其实是希望,小一些的树接到大一些的树下面,这样就能避免头重脚轻,更平衡一些

路径压缩

notion image
可见,调用find函数每次向树根遍历的同时,顺手将树高缩短了,最终所有树高都不会超过 3
  • 博弈型背包型
    Loading...
    目录