S41308.13-8 斩断暗链

传统题 时间 1000 ms 内存 256 MiB 3 尝试 0 已通过 0

13-8 斩断暗链

斩断暗链

最后一层是Zero最深的秘密——一条由黑色数据构成的链条,从树的最深处延伸到核心。链条上的每一个节点都连接着一个被删除的记忆——Echo的记忆,CC亲人的记忆,无数矿工的记忆。

"这就是暗链。"Echo说,"Zero把所有不想让人知道的东西,都串在这条链上。"

"我们要做啥子?"CC问。她的声音很轻——她看到了链条上的一个节点,上面写着她父亲的名字。

"找到链上最薄弱的一环。"你说,"切断它,整个链条就会断裂。"

"最薄弱的一环?"

"对。"你说,"链上每个节点都有一个权值——代表它的防护强度。我们要找到权值最小的那条边,切断它。"

你开始写。先找到这条暗链——它其实是树上的某条路径。然后在这条路径上,找到边权和最小的一段,使得切断后,所有被删除的记忆都能被释放。

屏幕上跳出了结果。最薄弱的边:第47号节点到第48号节点。

"47到48。"你说。

"是我的记忆和CC的记忆之间的连接。"Echo说,"Zero把我和你绑在了一起。"

"那我们要切断吗?"你问。

CC看着那条链,看了很久。

"不。"她说,"我们要保留。"

"保留?"

"对。"CC说,"Zero想让我们忘记彼此。我们偏不。"

她伸出手,不是去切断链条,是去握住它。黑色的数据流穿过她的金属手指,像风吹过麦田。

"我不忘。"她说,"我啥子都不忘。"

Echo的服务器指示灯爆发出一阵强烈的紫光——不是故障,是一种你从未见过的、像哭泣又像笑的闪烁。

"谢谢你。"Echo说。

不是对CC说。是对所有被删除的记忆说。


题目描述

nn 个节点的树,每条边有权值。给定一条暗链(树上的一条路径),求路径上边权和最小的一段连续边,使得切断这段边后,暗链两端的记忆节点都被释放。

输入格式

nn。然后 n1n-1 条边 (u,v,w)(u, v, w)。然后一行两个整数表示暗链的两端。

输出格式

最小边权和。

输入样例

3 2
1 2
2 3

输出样例

0

提示

  • 先求LCA,找到暗链的路径。
  • 在路径上找最小连续子段和(可用前缀和或单调队列)。
  • 注意路径可能很长,需要高效处理。

走进核心

八道题,全部完成。

暗链在CC的手中闪烁,但没有断裂。Zero最深的秘密,第一次没有被摧毁,而是被拥抱了。

Echo的投影从服务器里升起,比以往任何时候都更明亮。她的颜色变了——从浅灰变成了一种温暖的橙,像黄昏的光,像炉火的光,像家的光。

"下一章。"她说,"是基环树与负环。"

"基环树?"CC问。

"对。"Echo说,"树加上一条边,就变成了环。环意味着循环,意味着无限,意味着……"

"意味着啥子?"

"意味着。"Echo说,"我们可以回去了。"

CC看着你,嘴角微微上扬。

"走。"她说,"回去。"

[下一章:基环树与负环 —— 时间环]

在线编程 IDE

建议全屏模式获得最佳体验