浅谈最短路计数

问题描述:

N个顶点M条边的无向无权图,顶点编号为1−N。问从顶点1开始,到其他每个点的最短路有几条。

 

概念:

我们可以找出一个图的最短路,这张图有不同路径满足这个路径最短的限制。求不同路径数量称为最短路计数。

 

思路:

在跑最短路的时候用Cnt数组记录最短路条数。(Dij和SPFA都能搞)

在松弛每个点时,更新完最短路后判断是否满足dis[to]=dis[fr]+1,意思就是to这个点的最短路是否可以由fr更新。

根据加法原理,将Cnt[fr]加到Cnt[to]里。

这样就正确处理了Cnt数组,也就解决了问题。

上一篇:904 虫洞(spfa找负环)


下一篇:2021CCPC河南省赛(部分代码待更)