![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
双连通分量
~无相~
这个作者很懒,什么都没留下…
展开
-
Acwing396. 矿场搭建(tarjan割点的缩点)
思路 题目要求删除一个点之后,其他任意一个点能到一个出口点,无向图连通问题的话我们肯定一开始就想到tarjan缩点了,但是这题目还需要分析怎么缩点 对于不同连通块来说,答案肯定是独立的,最后只要把每一个连通块的答案乘起来即可 接下来缩点,对于有割点的无向图来求缩点的话,需要对于割点进行特殊处理,如果一个点是割点就把它作为单独的一个点,然后连接上它周围的双连通分量。 对于每一个连通块来说,如果连通块内没有割点的话,那么不论删除连通块的那一个点,都不会改变连通块的连通性,所以对于这样的连通块来说,需要2个出口原创 2020-09-24 09:16:38 · 100 阅读 · 0 评论 -
双连通分量+tarjan缩点模板
taijan视频讲解 代码 #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int N = 5010, M = 20010; int n, m; int h[N], e[M], ne[M], idx; int dfn[N], low[N], timestamp; int stk[N], top; int id[N], dcc_cnt; boo原创 2020-09-23 15:07:30 · 137 阅读 · 0 评论 -
Acwing395. 冗余路径(双连通分量+tarjan缩点)
题目 为了从F个草场中的一个走到另一个,奶牛们有时不得不路过一些她们讨厌的可怕的树。 奶牛们已经厌倦了被迫走某一条路,所以她们想建一些新路,使每一对草场之间都会至少有两条相互分离的路径,这样她们就有多一些选择。 每对草场之间已经有至少一条路径。 给出所有R条双向路的描述,每条路连接了两个不同的草场,请计算最少的新建道路的数量,路径由若干道路首尾相连而成。 两条路径相互分离,是指两条路径没有一条重合的道路。 但是,两条分离的路径上可以有一些相同的草场。 对于同一对草场之间,可能已经有两条不同的道路,你也可以在原创 2020-09-23 15:05:45 · 113 阅读 · 0 评论