「考试」weight

正解是树剖。

首先Kru求最小生成树。

然后分别考虑树边和非树边的答案。

首先是非树边,非树边链接的两个点在MST上能够构成一条链。

这条链上最大的那条边-1就是这条边的答案。

为什么。

模拟Kru的过程。如果这条边在树上那一条之前的话。这条边的起点和终点两个集合必然还没有链接。

因为之前那树上那一条断了树链就断了。

那么这条边会成为树边。

然后是树边。

树边的答案就更加浅显一点了,我们的非树边会威胁树边的地位。

也就是说在非树边可能到达某一个树边前面的话,这条边就会成为树边。

那么这条非树便就可以更新一整条树链的答案了。

对于每条树边,答案取最小值,如果仍然是INF,输出-1,否则输出这个值-1。

然后以上所有操作可以用树链剖分解决。

得解。

posted @ 2019-09-22 12:08  Lrefrain  阅读(158)  评论(0编辑  收藏  举报