zoukankan      html  css  js  c++  java
  • Kruskal 重构树

    构造方法

    对于一棵树 T ,建立一个 Kruskal 重构树。 首先创造新的节点,作为联通块的代表元,每个代表元初始时代表 T 中的一个节点。 然后按照某种自定义的顺序(为后文方便说明,这里直接当成边权大小)不重不漏枚举每一条边,对于当前边新建一个节点,然后合并当前边的两个端点所在的联通块的集合,将代表当前边的节点作为新集合的代表元。

    几个性质
    首先树的每个边都是桥。
    对于两个点,它们在构造重构树的过程中在同一个连通块里当且仅当它们路径上的最大权的边已经被枚举到, 这提供了几个性质:

    1. 寻找在 T 中两个点之间边权最大的边就相当于在重构树中寻找这两点的 LCA 。
    2. 重构树代表原树某条边的节点 x 代表的子树里面所有代表原树中点的节点所代表的原树中的节点两两之间路径的边权最大值不超过这个 x 代表的边的边权。
  • 相关阅读:
    spring(1)
    mybatis(7)自定义结果集(一对多/多对一)
    延迟加载
    《构建之法》阅读笔记03
    http socket
    转换
    .net后台通过xmlhttp 和远程服务通讯
    XMLHttpRequest介绍
    js 贪吃蛇
    触发器
  • 原文地址:https://www.cnblogs.com/tztqwq/p/13918264.html
Copyright © 2011-2022 走看看