无向图添加最少边使得图边双连通

题意:
给定一个无向连通图,问最少要添加多少条边,可以使得这个图是边双连通的。

题解:

t a r j a n tarjan tarjan缩点后图变成树,首先特判树中点数 n ≤ 2 n\leq 2 n2的情况。
考虑 n > 2 n>2 n>2的情况,答案为 ⌊ n + 1 2 ⌋ \lfloor \frac{n+1}{2} \rfloor 2n+1
构造具体方案时,以任意度大于 1 1 1的点为根,只需要保证任意两个叶子连边后与根成环,
当奇数个叶子时,可以将一个叶子与根相连,又转换成了偶数叶子情况。

具体构造:
t a r j a n tarjan tarjan缩点后图变成树,选择度大于 1 1 1的点为根,按照 d f s dfs dfs序存下所有叶子, l e a f [ i ] leaf[i] leaf[i]表示 d f s dfs dfs序的第 i i i个叶子,共 g g g个叶子。将 l e a f [ i ] leaf[i] leaf[i] l e a f [ i + ⌊ n 2 ⌋ ] leaf[i+\lfloor \frac{n}{2}\rfloor] leaf[i+2n]连边, ( i ≤ ⌊ n + 1 2 ⌋ ) (i\leq\lfloor \frac{n+1}{2}\rfloor) (i2n+1)

其实我并没有太理解这个做法的证明,如果有大佬明白可以在评论区解答下~
例题:
2020牛客多校第三场 C C C
含有官方题解的博客

猜你喜欢

转载自blog.csdn.net/weixin_43900869/article/details/113843023