树上倍增+kruskal 要找严格次小生成树,肯定先要找到最小生成树. 我们先把最小生成树的边找出来建树,然后依次枚举非树边,容易想到一种方式: 对于每条非树边(u,v),他会与树上的两个点构成环,我们在树上的两个点路径上找到最大值a和次大值b,如果非树边(u,v)的权值大于a,那么用mst-a+w(u,v) 如果非树边(u, v)的权值等于a,那么用mst-b+w(u,v) 枚举完所有非树边之后,最小值就是严格次小生成树 对于每个点路径的最大值和次大值,我们可以和LCA一样,用树上倍增的方式…