正解是树剖。
首先Kru求最小生成树。
然后分别考虑树边和非树边的答案。
首先是非树边,非树边链接的两个点在MST上能够构成一条链。
这条链上最大的那条边-1就是这条边的答案。
为什么。
模拟Kru的过程。如果这条边在树上那一条之前的话。这条边的起点和终点两个集合必然还没有链接。
因为之前那树上那一条断了树链就断了。
那么这条边会成为树边。
然后是树边。
树边的答案就更加浅显一点了,我们的非树边会威胁树边的地位。
也就是说在非树边可能到达某一个树边前面的话,这条边就会成为树边。
那么这条非树便就可以更新一整条树链的答案了。
对于每条树边,答案取最小值,如果仍然是INF,输出-1,否则输出这个值-1。
然后以上所有操作可以用树链剖分解决。
得解。
原文地址:https://www.cnblogs.com/Lrefrain/p/11566890.html
时间: 2024-11-04 13:58:17