传送门 算法Dijkstra要求次短路 那么在不考虑重复走一条边的情况下 肯定是把最短路中的一段改成另一段 至少要换另一条边到路径里所以可以枚举所有不属于最短路的每条边(a,b) 那么dis(1,a)+(a,b)+ dis(b,n)就是一种可能的答案(记为S) 显然如果另一条不属于S的边更新S后会使S更长,就不可能为次短路了 那么只要对起点1和终点n分别跑Dijkstra就可以求出每个dis(1,a)和dis(b,n) 至于判断一条边是否在最短路上也很容易: 显然,如果dis(1,a)+(a,b…