这个内容为什么想放在这个时候就放出来呢?因为刚刚才把TOP排序讲完,所以我们跳过关键路径『有什么关联吗?』,直接进入关节点和重连通图。
一、关节点:又称割点,是维系一个图能够连通的节点(就是说没有这个节点,这个图就不连通),若从连通图中删除点V,就会使这个图割裂成多个子图,则称V点为该图的关节点。
二、重连通图:没有关节点的图。【补充:其充分必要条件为任意两点都在一个圈上!】
以上是这两个重点的概念,详情请见百度百科。
接下来就是重点了!
三、DF生成树(不是DFS又是DFS『纠结』):对图DFS,若沿某条边所到达的点是一个未访问的节点,则称这条边为树边,而由树边构成的生成树,称为DF生成树。
四、实现:
1.变量定义:
- dfn[v]——v点的深搜编号
- low[v]——是从v点出发的所有路径中,所能到达的点的dfn最小值
- low[v]=min(dfn[v],min(low[son],low[father])),这个具体看实现!
2.核心思想: - 对图DFS,计算low[v]
- 判关节点,若v为根,则当v的子树个数≥2时,v是关节点。
- 若v不为根,则当v的某个子节点s的low[s]≥dfn[v],v是关节点。
- 最后输出相应的重连通子图。
3.