题目链接:POJ 2117 Electricity
题目描述:
给定一张无向图,问删除一个结点后最多会有多少个强连通分量。
题解:
我们用
scc
表示初始的图中有多少个强连通分量,该值可以通过DFS
计算出来。
接下来我们只需要计算出删除每个割点会增加的强连通分量个数cnt
即可,答案即为cnt + ans
,对于一个强连通分量中的非根结点,用son
表示有多少个子结点能够返回到当前结点或者当前结点之前遍历的结点,那么不难发现,删除当前结点后会增加的强连通分量的个数即为son
;对于一个强连通分量中的根节点而言,用son
表示有多少个子节点,不难发现删除根节点后增加的强连通分量个数为son-1
。
经过上面的操作后,我们只需要对每个结点删除后增加的强连通分量个数取最大值与scc
的和即为所求。
代码:POJ2117