一个次短路的问题,可以套用dijkstra求最短路的方法,用dis[0][i]表示最短路:dis[1][i]表示次短路,优先队列中存有最短路和次短路,然后每次找到一条道路对他进行判断,更新最短或次短路, 注意求次短路时不要打标记,因为有可能再次访问到该节点. 最后的答案就是dis[1][n]. 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define N 200010 4 int tot,head[N],to[N],w[N],nxt[…