LCA求最小生成树的时候,在最后一步根据倍增更新最大值和次大值的时候,倘若不更新s = f[s][i],样例也是能过的void Solve(int s,int t,int w_)
{
int m1 = 0, m2 = 0, k = d[s] - d[t];
for(int i = 0; i <= 17; i ++) {
if(k >> i & 1) {
m2 = max(m2, g[s][i][1]);
if(g[s][i][0] > m1) {m2 = max(m2, m1); m1 = g[s][i][0];}
s = f[s][i];
}
}
if(m1 == w_) Min = min(Min, w_ - m2);
else Min = min(Min, w_ - m1);
}