📅 最后修改于: 2023-12-03 15:12:45.953000 🧑 作者: Mango
有 $N$ 个门,第 $i$ 个门标有整数 $A_i$ 与 $B_i$,表示从这个门离开后会来到第 $A_i$ 个门或第 $B_i$ 个门。已知从起点 $S$ 出发到第 $i$ 个门的最短距离为 $D_i$,求从起点 $S$ 出发到达各个门的最短距离 $D$。
第一行包含整数 $N$。
接下来 $N$ 行,每行包含三个整数 $A_i$、$B_i$ 和 $D_i$,用来表示第 $i$ 个门会到达的两个地方与到达这个门的距离。
最后一行包含起点 $S$。
输出从起点 $S$ 出发到达各个门的最短距离 $D$,每个答案占一行。
本题可以使用广度优先搜索(BFS),由于涉及到图,因此可以通过邻接表的方式存储。需要注意的是,由于每个门有两个选项,因此可能存在一个门被多次访问的情况,在这种情况下应该只保留最小的距离值。因此,为了方便起见,可以使用一个最小堆来维护距离值。