【题解】CF22E Scheme 缩点、tarjan、基环树

题目链接

题意可以转化为:给定基环内向树森林,加最少的边使得图强连通。

考虑一棵基环内向树的环,一定不存在一条有向边 \(u\to v\) ,其中 \(u\) 属于环, \(v\) 不属于环。

那么我们将一棵基环内向树缩点后,一定是以环所在的强连通分量为根节点的内向树。

对于一棵内向树来说,任意一个节点都可以到达根节点,那么我们只需要将根节点与所有叶子连接即可。

对于由 \(k\) 棵内向树构成的内向树森林,我们可以加 \(k-1\) 条边合并成一棵内向树。

并且我们可以每次将其 “挂到” 叶子节点上,使得每次合并能够使得叶子节点个数 - 1 。

合并后根节点往叶子节点连边即可。

那么答案即内向树森林的叶子节点个数和。

时间复杂度 \(O(n)\)

代码记录

posted @ 2021-09-20 12:45  Themaxmaxmax  阅读(80)  评论(0编辑  收藏  举报