求最短路和比最短路大1的路径数目
其实就是求最短路和次短路的数目,如果次短路比最短路小1,则两者相加
开二维数组dis[N][2]和cnt[N][2],dis[i][0]表示到i点的最短距离,dis[i][1]表示到i点的次短距离,cnt[i][0]和cnt[i][1]分别表示到i点的最短路和次短路的数目
利用dijkstra算法,通过2n-1次就可计算出
更新情况分为4种:
1.比最短路还小,则它成为新的最短路,原来的最短路成为次短路
2.和最短路一样大,则增加最短路的数目
3.比次短路小,则它成为新的次短路
4.和次短路一样样,则增加次短路的数目
代码: