• 树论相关


    树的重心

    定义

    树上一点 (x),令 (x) 的最大子树的节点数最小

    性质:

    • 对于删除重心后所得的所有子树,最大节点数不超过原树的 (frac{1}{2})
    • 一棵树最多只有两个重心,这两个重心相邻
    • 这两个重心相邻时,记深度较浅的节点为 (u) ,深度较深的节点为 (v),则 (size_1-size_v=size_v)
    • 树中所有节点到重心的距离和最小,如果有两个重心,那么树上所有节点分别到这两个重心的距离和相等
    • 两棵树用一条边合并成一棵树,新的重心在原树两个重心的路径上
    • 在树上删除 (/) 添加一个叶子节点,重心最多只会移动一条边

    树的直径

    定义

    树上两点间的最长路径

    性质

    • 直径两端点一定会是两个叶子节点
    • 对于一棵树,对于任意一条直径 (Path(s o t)) 和任意一点 (x)(s)(t) 一定是距离 (x) 最远的点之一
    • 对于两棵树,如果树 (T_1) 直径两端点为 ((u,v)),树 (T_2) 直径两端点为 ((x,y)),用一条边连接两棵树 (T_1,T_2),得到的新树直径两端点 (in {x,y,u,v})
    • 对于一棵树,如果在一个点下接一个叶子节点,最多只会改变直径的一个端点
    • 若一棵树存在多条直径,则这些直径交于一点并且交点就为这些直径的中点

    最小生成树

    定义

    (G) 的边权之和最小的生成树 (T)

    性质

    • 把所有边权相同的视为边组,每一组边组在最小生成树的条数是固定的,对连通性的贡献也是固定的
    • 换掉一条边并且保证结果是树记为一次操作,树 (A)(B) 是无向图的两个生成树,则 (A) 可以通过若干次操作变成 (B)(对最小生成树也成立)
    • 如果无向图的边权都不相同,则最小生成树是唯一的
    • 如果一棵生成树,任何边都在某棵最小生成树上,则它不一定是最小生成树
    • 对于任意正确加边方案(即不存在环),加完小于某权值的所有边后当前边集的连通性是一样的

    杂项

    判断树上两条路径是否有公共点:设给出的两条路径为 (mathrm{Path}(a o b),mathrm{Path}(c o d))。若 (mathrm{Path}(a o b))(mathrm{Path}(c o d)) 有交,仅当 (mathrm{lca}(a,b)inmathrm{Path}(c,d)vee mathrm{lca}(c,d)in mathrm{Path}(a,b))

    判断一个点是否在一条路径上:设给出的路径为 (mathrm{Path}(x,y)),给出的点为 (z)。若 (zin mathrm{Path(x,y)}),仅当 (mathrm{dis}(x,z)+mathrm{dis}(z,y)=mathrm{dis}(x,y))

    (n) 个点选 (m) 个点作为根的有标号森林数为:(C_n^m imes n^{n-1-m} imes m)。使用 ( ext{Prufer}) 序列证明:在森林中加入一个虚点(方点),点权设为 (infty),则这 (n+1) 个点的 ( ext{Prufer}) 序列长度为 (n-1),且 ( ext{Prufer}) 序列中最后 (1sim k) 项都是这个方点,倒数第 (k+1) 项是选中的 (k) 个根中的任意一点,第 (1sim n-k-1) 项只要 (in [1,n]) 即可,故总方案数为上式。

  • 相关阅读:
    按照指定的字符串拆分字符串,split()方法。
    charAt()取出指定位置的字符 .length()得到一个字符串的长度 indexOf()查找一个指定的字符是否存在并返回其位置 trim()去掉字符串的左右空格 substring()字符串的截取 str.replace(" ", ""); 去掉所有空格,包括首尾、中间
    字符串与字符数组的多种转换方式。
    匿名对象。
    构造方法。
    递归的练习,1.统计文件夹大小 2.删除文件夹及文件夹下的文件
    jquery零散小饼干
    jQuery review
    git解决冲突
    url、href、src
  • 原文地址:https://www.cnblogs.com/tommy0103/p/13714685.html
Copyright © 2020-2023  润新知