很有意思?的一个题目

考虑对于一个最小生成树,它的边权集合S一定是一个确定的集合,不会变化。正确性显然。那么不同的MST只能是 选出的作为最小生成树的一组相同权值的边 不同。

那么我们只需要先把权值更小的最小生成树边先链接起来,再暴力枚举这组边是什么。满足其构成最小生成树的条件即为每一条边都连接了两个连通块。通过kruskal算法来考虑这个问题,那么正确性显然。

具体实现的时候我们需要判定两个点是否在同一个连通块中,那么我们直接使用按秩合并的并查集即可。

目前算法是这样,然而并不能过10^5的数据。