浅谈最短路计数

问题描述:

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

概念:

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

思路:

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

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

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

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

posted @ 2021-11-03 20:59  Gym_nastics  阅读(69)  评论(0编辑  收藏  举报