回顾 kruskal:

取边权最小的一条边,若两个点在不同连通块(并查集),则连边合并。

我们把以上规则改一下:

如果点 $A$ 的老大的小弟数<点 $B$ 的老大的小弟数,$A$ 成为 $B$ 小弟。

反之,$B$ 成为 $A$ 小弟。

我们定义 $s_i$ 是点 $i$ 的老大的小弟数,$w$ 是 $a$ 到 $b$ 的边权。

贡献和为:$(s_A×s_B−1) \times (w+1)$。

代码楼上楼下都已经写的很明白了,我就不在赘述了。