支配点是一个点从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: