zoukankan      html  css  js  c++  java
  • Day6(树上问题)

     树的重心

    定义:将树上某点删掉后,剩下的子树大小最小。

    性质:1)树的重心的每棵子树大小一定小于等于n/2

               2)每棵子树大小一定小于等于n/2的点一定是树的重心->最多有2个点为重心且相邻

               3)树中所有点到某点的距离和中,到重心的距离和最小。(如果有2个重心,距离和一样)

               4)两棵树通过一条边相连成为一棵新树,新树重心一定在原来两棵树的重心的路径上。(证明:调整法)

    找重心方法:

    1)正常方法

    2)调整法,从一个点出发,以该点为根,看儿子子树有没有大于等于n/2的,有就向下走,只到不能走了为止。

    CF468D Tree https://www.cnblogs.com/wifimonster/p/10227588.html

    AT2673 Tree and Hamilton Pat https://www.cnblogs.com/wifimonster/p/10227595.html

    树的直径

    定义:最长的简单路径

    一棵树的直径可有若干条,这些直径两两相交且所有直径的交集非空

    性质:1)从树上一点出发走最长路径,路径终点必为一条直径的一个端点

               2)两棵树用一条边合并,新树直径两端顶点一定是原本两树两条直径四个端点中的两个(不考虑多条直径)

               3) 对于两条相交的直径,它们不相交部分一定对称

    AT2061 Tree Restoring https://www.cnblogs.com/wifimonster/p/10227601.html

     

    [COCI2008]道路重组

    遍历序列&树链剖分

    对于一个图,遍历过程中经过的点的序列就是它的遍历序,如BFS序、DFS序、欧拉序等等。
    我们主要讨论的是欧拉序,DFS序和括号序。

    欧拉序:从根节点开始dfs遍历树——在点x时,走到一个未遍历过的儿子,或者儿子已经全部遍历过从x返回到父亲,以此法得到的遍历序列是欧拉序。
    DFS序:从根节点开始dfs遍历树,一个节点第一次被遍历到时加入到序列内,以此法得到的遍历序列是DFS序。
    括号序:从根节点开始dfs遍历树,一个节点第一次被遍历或遍历完儿子要退出时将其加入到序列内,以此法得到的遍历序列是括号序。

    欧拉序:
    1 2 5 8 5 9 10 9 11 9 12 9 5 2 6 2 1 3 1 4 7 4 1               
    DFS序:
    1 2 5 8 9 10 11 12 6 3 4 7
    括号序:
    1 2 5 8 8 9 10 10 11 11 12 12 9 5 6 6 2 3 3 4 7 7 4 1

     

     POJ3321 苹果树

    GDKOI2015 树

    果树

    [LNOI2014][BZOJ3626]LCA

  • 相关阅读:
    SpringBoot Maven项目 Helloworld 测试
    Oracle client安装教程
    quartz定时任务时间设置
    maven导出项目依赖的jar包
    Java 集合类
    Webservice客户端动态调用服务端功能方法
    使用Eclipse自带的Axis1插件生成Web Service服务端客户端
    SpringBatch Sample (五)(复合格式文件的读、多文件的写)
    Mysql性能分析
    设置nginx中文件上传的大小限制度
  • 原文地址:https://www.cnblogs.com/wifimonster/p/10227091.html
Copyright © 2011-2022 走看看