【HDOJ】1002 Blow up the city

关于 支配树 的学习

 

题目:http://acm.hdu.edu.cn/showproblem.php?pid=6604

 

大意是在一张DAG图里求所有入度为0的点的支配点数目

 

支配树

给定一个有向图,给定起点S,终点T,要求在所有从S到T的路径中,必须经过的点有哪些(即各条路径上点集的交集),称为支配点。

简而言之,如果删去某个点(即支配点),则不存在一条路径能够使S到达T。由支配点构成的树叫做支配树

 

支配树是一颗由起点S为根的树,根到树上任意一点路径经过的点都是它的支配点。
对于每颗子树,都符合上述性质(即子树内一点到该子树的根路径经过的点都是该子树的根的支配点)

例如对于下图

 

 

 

 这是它的支配树,也称流程图

 

 

半支配点作为「与支配点有关的线索」存在,点 x 的半支配点 sdom[x] 满足两点定义。

1. 必然存在一条路径从 sdom[x] 到 x ,路径由k个点和 sdom[x] 以及 x 构成。k个点都满足dfs序号大于x(k可以等于0)。

2. sdom[x] 为所有满足第1个条件的点中dfs序最小的。

即 sdom(w)=min{v|有路径v=v0, v1, ..., vk=w使得vi>w对1<=i<=k-1成立}.    

如上图中,对于点 I ,存在路径:R-B-D-L-H-K-I 满足第1个条件

且所有可行的起点序号最小的是R。因此 I 的半支配点的 R 。

原始图的dfs图和半支配点为下:

括号内数字是dfs序,字母是该点的半支配点。

在半支配点的定义这里想了好一会_(:з」∠)_

 

posted @ 2022-02-23 10:35  Oranges  阅读(38)  评论(0编辑  收藏  举报