把“索道”视为一条权值为 0 的无向边 (A, B)
。
用 Floyd-Warshall 求全源最短路,直接得到所有点对最短距离。最终答案就是 dist[s][e]
。
O(n^3)
(n ≤ 100,可承受)某定向越野赛事在一片山区举行,山区内共有n个打卡点(编号为1 ~n),打卡点之间有m条可供通行的山 路,每条山路通行都要花费固定的通行时间(单位:分钟)。赛事要求选手从“起点打卡点”出发,最终到达 “终点打卡点”。 组委会在某两个打卡点A和B之间设置了一条特殊索道,选手可以通过该索道在这两个打卡点之间瞬间往返 (不消耗时间). 请计算选手从起点到终点的最短通行时间(保证存在可达路径)。
第一行两个正整数n,m,分别表示打卡点总数和山路数量
第二行两个正整数,分别表示“起点打卡点”和“终点打卡点”的编号。
第三行两个正整数,分别表示设有特殊索道的两个打卡点的编号。
接下来m 行,每行三个正整数u,v,t,分别表示打卡点 u和v之间有一条山路,双向通行,通过该山 路需要消耗t分钟。
1<=n<=100,1<=m<=2∗n,每条道路的时间花费在[1,10]之间。
一个整数表示最短通行时间。
输入
6 5
2 6
3 5
2 3 3
3 4 2
4 5 1
5 6 4
2 4 5
输出
7