POJ 2117 Electricity 题解 Tarjan 割点

题目链接:POJ 2117 Electricity
题目描述:

给定一张无向图,问删除一个结点后最多会有多少个强连通分量。

题解:

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

代码:POJ2117

你可能感兴趣的:(算法题目,算法,图论,c++)