#P2865. 路障(Roadblocks)

0
    ID: 8514 传统题 1000ms 128MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>P2865单源次短路径最短路次短路DijkstraCSP-S

路障(Roadblocks)

路障(Roadblocks)

题目描述

Bessie 搬到了一个小农场,有时喜欢回去拜访她的一个好朋友。她不想太快到达她的旧家,因为她喜欢沿途的风景。她决定选择第二短的路径而不是最短的路径。她知道一定存在某条第二短路径。

乡村由 R(1≤R≤100,000)R(1\le R\le100,000) 条双向道路组成,每条道路连接 N(1≤N≤5000)N(1\le N\le5000) 个交叉路口中的两个,这些交叉路口被方便地编号为 11 到 NN。Bessie 从交叉路口 11 出发,她的朋友(目的地)在交叉路口 NN。

第二短路径可以与任何最短路径共享道路,并且可以回溯,即多次使用相同的道路或交叉路口。第二短路径是长度比最短路径长的最短路径(即,如果存在两条或多条最短路径,第二短路径是长度比这些路径长但不比任何其他路径长的路径)。

输入格式

第 11 行:两个用空格分隔的整数:NN 和 RR。

第 22 行到第 R+1R+1 行:每行包含三个用空格分隔的整数:AA、BB 和 DD,描述连接交叉路口 AA 和 BB 的一条长度为 D(1≤D≤5000)D(1\le D\le5000) 的道路。

输出格式

第 11 行:节点 11 和节点 NN 之间第二短路径的长度。

样例输入 #1

4 4
1 2 100
2 4 200
2 3 250
3 4 100

样例输出 #1

450

数据范围

样例解释:两条路径分别为 1→2→41 \to 2 \to 4(长度 100+200=300100+200=300)和 1→2→3→41 \to 2 \to 3 \to 4(长度 100+250+100=450100+250+100=450)。

对于 100%100\% 的数据,2≤N≤50002 \le N \le 5000,1≤R≤1051 \le R \le 10^5,1≤D≤50001 \le D \le 5000。

子任务编号 分值 测试点编号 特殊限制
1 30 1~8 2≤N≤1002 \le N \le 100,1≤R≤5001 \le R \le 500
2 9~16 2≤N≤10002 \le N \le 1000,1≤R≤100001 \le R \le 10000
3 40 17~25 2≤N≤50002 \le N \le 5000,1≤R≤1000001 \le R \le 100000