伪目录
- 给出支配树的定义
- 给出一些性质
- 介绍快速构造支配树的Lengauer-Tarjan算法及具体实现
支配树是啥
一个有源点的有向图,其支配树是满足下面条件的一个有向图:
对于支配树上一点,若断开此点,则源点必定不能到达它的任何儿子,并且能到达其他任意一个点。
不显然的,它是一棵树(当然后面会有证明)
支配树有很多实际用途,我都不知道。
一些性质
对于一个有向图,假设源点为rrr,先从rrr出发构造一棵dfs树。
定义:对于一个点uuu,若一支配uuu的点www满足w̸=uw\not= uw̸=u并且www被支配uuu的其他不含uuu的支配点支配,则www就是uuu的最近支配点,记作idom(u)idom(u)idom(u)。
通俗的讲,www是离uuu最近的那个支配点,并且能恰好支配uuu。
Lemma 1: 支配关系不存在环。
Proof: 若aaa支配bbb,那么rrr到bbb必定经过aaa,若bbb支配aaa则到达bbb需要经过aaa,此时并没有经过bbb,产生矛盾。
Lemma 2: 除源点外,其他点有且仅有一个最近支配点。
Proof: 若aaa支配bbb,bbb支配ccc,则aaa支配ccc;若aaa支配ccc,bbb支配ccc,那么aaa支配bbb或bbb支配aaa,否则可以找到一条路径不经过aaa而到达ccc而矛盾。因此支配uuu的所有点的集合构成了一个全序关系,因此总可以找到一个点满足上述最近支配点的定义。
Theorem 1: 若连接一个点和其最近支配点,那么这张图构成了一棵树,并且满足支配树的定义。
Proof: 由Lemma 1和Lemma 2可以得到这张图就是一棵树。容易证明,若断开uuu,则源点不可能到达uuu的任意一个儿子。对于其他点,由支配树的定义和Lemma 2可以推导出这个点不会受到uuu是否断开的影响。
由Theorem 1,若得到了所有点的idomidomidom,则容易构造出这张图的支配树。
那么怎么求idomidomidom呢?
首先定义:定义一个点uuu的半支配点www为存在路径w→uw\rightarrow uw→u,使得除了www,这条路径上任意一个点的dfs序都大于等于uuu的dfs序,并且www是所有满足条件的点中最小的那个,记作sdom(u)sdom(u)sdom(u)。
Lemma 3: 对于任意一点u̸=ru\not=ru̸=r,idom(u)idom(u)idom(u)为uu