原题链接 题意实际上就是让你添加尽量少的边,使得每个点都在至少一个环上. 显然对于在一个边双连通分量里的点已经满足要求,所以可以用\(tarjan\)找边双并缩点. 对于缩点后的树,先讲下我自己的弱鸡做法,每次找直径,因为将直径改为环显然使得新添的边贡献最大,这样贪心的连下去,直到所有点满足要求为止. 而实际上有一个简单结论,该题答案就是缩点后树的叶子节点个数除\(2\)(向上取整). 代码是用的我自己的弱鸡做法. #include<cstdio> using namespace std; c…