浅谈最短路计数问题

浅谈最短路计数问题

本篇随笔浅谈一下图论中的最短路计数问题。


一、问题概念

最短路计数就是字面意思。我们可以找出一个图的最短路,但是这张图有多少条不同路径都满足这个路径最短的限制呢?

这就是最短路计数问题。


二、问题解决

在我们正常跑最短路算法松弛的时候,再采用一个数组cnt来统计最短路的条数。

当然,我们要想办法找出一个正确的松弛方案,也松弛cnt数组。

显然地,如果有路径可以松弛最短路,那么这个计数就要重新计算,因为已经没有用了。

所以此时cnt[y]=cnt[x],是一个继承。

还需要考虑什么问题呢?

当当前路径正好就是上一个节点的已知最短路时,这个计数就累加,合理性显然。

所以cnt[y]+=cnt[x]

所以我们就处理出了一个正确的cnt数组。

也就解决了这个问题。

posted @ 2020-11-03 18:29  Seaway-Fu  阅读(237)  评论(0编辑  收藏  举报