牛客练习赛 56 E. 小雀和他的王国(树的直径 + tarjan边双通缩点模板)
很明显,只有桥被删才有影响,用tarjan将每个边双通缩一下点,剩下的边就是桥。
对新的点进行重新建图,得到的一定是一棵树
题目转化为如何在树上加一条边使得构成的环尽可能大,在两点间加一条边只会影响一条链,显然在树的直径的两端加一条边构成的环最大。答案是剩下的非环边 / (m + 1)。
可能存在有重边可以自环的情况,特判一下。
#include<bits/stdc++.h>
us...
原创
2019-12-28 10:03:34 ·
168 阅读 ·
0 评论