Kruskal 重构树学习笔记
Kruskal 重构树
回忆 算法求最小生成树的过程,将所有边按边权排序,然后从小到大合并。若两个点不直接合并,而是新建一个虚点 ,连 和 ,就形成了一棵 重构树 。
重构树有一些性质:
- 树为二叉树。
- 原图的所有结点为树的叶子结点。
- 若边按边权从小到大排序,则父结点点权 根结点点权;反之亦然。
- 结点 在原图中所有经过边权 的边能到达的点,就是它在按边权从小到大排序得到的重构树上最浅的,点权 的祖先 的子树内的所有叶子结点。
因此可以得出一个套路:如果题目有类似经过权值 或 的点或边的限制,就可以考虑使用 重构树 。
若要处理经过点权 或 的点的限制,则需要为边赋值。例如,若限制经过点权 ,则经过边 需要满足 两个点的点权均 ,因此边权为 。
有些题目既限制了权值 也限制了权值 ,可以按边权从小到大和从大到小建两棵 重构树,并根据 和 倍增到相应的祖先结点,问题就转化成了两棵子树交。记 分别为两棵树的 序,则问题为满足 , 且 的 数量。设 为 在 中出现的下标,问题即求 , 的 的数量。二维偏序,可以在线主席树或者离线树状数组+扫描线求解。
分类:
学习笔记
, Kruskal 重构树
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!