• 支配树


    支配点是一个点从s->经过的必经点。

    最近支配点就是一个点x支配点i,使得i被所有x

    发现支配关系满足传递性,所以x->最近支配点形成一颗树。

    先从起点开始生成一颗dfs树。把所有点的标号重新标为dfs序。

    定义一个点x的半支配点y为编号最小,且x->y的路径(不包含x,y)的点的标号都>x的点。

    显然y是一个半支配点的候选者。

    性质1:如果x<y,则x->y的所有路径都要经过dfs树上的公共祖先(没有最近两字)

    原因是把lca(x,y)->s的所有点删除。则所有儿子->祖先的边都不能跨越到另外一颗子树内。

    横叉边都是编号从大->小的(否则在dfs的过程中可以被经过),矛盾。

    性质2:一个点的半支配点唯一。

    性质3:一个点的半支配点是其祖先

    证明:

    性质4:一个点的支配点是其祖先

    证明:如果不是,则源点可以通过dfs树到达当前点。

    性质5:一个点的支配点是其半支配点的祖先

    证明:

    性质6:一个点到半支配点的路径只有不交,包含两种关系。

    证明:

    性质7:

  • 相关阅读:
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    剑指offer-栈的压入、弹出序列
    剑指offer-包含min函数的栈
    图-Dijkster最短路径
    剑指offer-顺时针打印矩阵
    二叉树的镜像
    剑指offer-树的子结构
  • 原文地址:https://www.cnblogs.com/cszmc2004/p/12971355.html
Copyright © 2020-2023  润新知