【题目描述】
布达佩斯的街道形成了一个弯曲的单向网络。你要参加一个赛跑,比赛中你需要穿越这些街道,从s开始,到t结束。
要求写一个程序来计算一个从s到t的严格次短路线。
严格次短路线可能访问某些节点不止一次,样例2是一个例子。
【输入描述】
第一行包含两个整数N和M,N代表布达佩斯的节点个数,M代表边的个数。节点编号从1到N。1代表出发点s,N代表终点t。接下来的M行每行三个整数A、B、L,代表有一条从A到B的长度为L的单向同路。你可以认为A不等于B,也不会有重复的(A,B)对。
【输出描述】
输出从s到t的严格次短路的长度。如果从s到t的路少于2条,输出-1。
【样例输入】
样例1:
4 6
1 2 5
1 3 5
2 3 1
2 4 5
3 4 5
1 4 13
样例2:
2 2
1 2 1
2 1 1
【样例输出】
样例1:
11
样例2:
3
【数据范围及提示】
样例1:
有两条长度为10的最短路径(1 → 2 → 4,1 → 3 → 4)并且有一条长度为11的严格次短路径(1 → 2 → 3 → 4)。
样例2:
有一条长度为1的最短路径(1 → 2)并且有一条长度为3的严格次短路径(1 → 2 → 1 → 2)。
时间: 2024-08-24 00:59:58