首先想到非次小生成树一定只有一条边被替换了,不然如果替换了两条边,答案可能会比一条边更差。严格次小生成树也是这样,一定存在一个最优解使得只替换了一条边。所以我们可以枚举图外的一条边,试图替换里面的一条边
非严格
替换的边没有要求,想让替换后增加的尽量少,那么我们就要找尽量大的生成树边来更新。
严格
替换的边必须小于这条边的边权。要询问的就是一条路径上小于这个边权的边。一个sb的办法就是使用树套树,复杂度\(m log_{n}^{3}\)应该过不去。但是有个非常好的性质。这些边权全部都小于等于这个边权,由最小生成树的性质保证。所以我们只要用线段树维护最大值和次大值就行了