题意
给定一个 $n$ 个点,$m$ 条边的连通无向图。您的任务是最小化此图中存在路径的顶点对 $1 \leq u < v \leq n$ 的数量。要实现此目标,您可以从图中移除一条边。
找到最小数量的顶点对!
$1 \leq n, m \leq 10^5$
题解
显然删除一个边双连通分量中的边没有任何用处。
于是先跑 Tarjan 缩边双连通分量,然后就会变成一棵树。
计算每个节点的子树大小,记为 $\mathsf{Size}_i$。
如果删除 $i$ 到 $i$ 父亲的边的话,此时树会被拆成两个连通块,大小分别为 $\mathsf{Size}_i$ 和 $n - \mathsf{Size}_i$,于是总的连通点对数量为
$$\mathsf{Size}_i\left(\mathsf{Size}_i - 1\right) + \left(n - \mathsf{Size}_i\right)\left(n - \mathsf{Size}_i - 1\right)$$
因此枚举每个点,求上式的最小值即可。
其实你可以在 Tarjan 过程中做上述过程,找到桥之后直接判两端大小算答案,这样代码会非常好写。