CF1081D Maximum Distance

题目描述

Chouti 厌倦了枯燥的作业,于是他打开了几年前自己出的一个老编程题。 给定一个包含 $n$ 个顶点和 $m$ 条带权边的连通无向图。有 $k$ 个特殊顶点:$x_1, x_2, \ldots, x_k$。 我们定义一条路径的代价为该路径上所有边权的最大值。两个顶点之间的距离为连接它们的所有路径中代价的最小值。 对于每一个特殊顶点,找出另一个距离它最远的特殊顶点(即上述定义下距离最大的那个),并输出它们之间的距离。 原本的限制很小,所以 Chouti 觉得这题很无聊。现在,他提高了限制,希望你能帮他解决这个问题。

输入格式

第一行包含三个整数 $n$、$m$ 和 $k$($2 \leq k \leq n \leq 10^5$,$n-1 \leq m \leq 10^5$)——表示顶点数、边数和特殊顶点数。 第二行包含 $k$ 个互不相同的整数 $x_1, x_2, \ldots, x_k$($1 \leq x_i \leq n$)。 接下来的 $m$ 行,每行包含三个整数 $u$、$v$ 和 $w$($1 \leq u, v \leq n, 1 \leq w \leq 10^9$),表示在 $u$ 和 $v$ 之间有一条权值为 $w$ 的无向边。图是无向的,因此一条边 $(u, v)$ 可以双向使用。 图中可能存在重边和自环。 保证图是连通的。

输出格式

输出一行,包含 $k$ 个整数,第 $i$ 个整数表示 $x_i$ 到距离它最远的特殊顶点的距离。

说明/提示

在第一个样例中,顶点 $1$ 和 $2$ 之间的距离为 $2$,因为可以通过权值为 $2$ 的边直接相连。因此对于 $1$ 和 $2$,距离最远的特殊顶点的距离都是 $2$。 在第二个样例中,可以发现 $1$ 和 $2$ 之间的距离、$1$ 和 $3$ 之间的距离都是 $3$,$2$ 和 $3$ 之间的距离是 $2$。 图中可能存在重边和自环,如第一个样例所示。 由 ChatGPT 4.1 翻译