社交网络

单源最短路求解路径条数很好做,但是多源最短路要稍微麻烦一点

dij求最短路计数是不是有问题?只适用于正边权图计数吧,如果有\(0\)边不一定能保证取出的时候的计数是正确的?(自己造个数据测试一下)

spfa想一下,还没想

这一道题目就是用floyd求解多源最短路条数,正确性的话也是按照蓝书上那么想

就是记录路径条数的数组其实也是省略了一维的

计数从不重不漏的角度理解

不难发现,当外层循环刚刚进入\(k\)的时候,\(dis\)保留的是不经过\(k\)的最短路,\(edge\)也是如此,而且我们可以知道在这层循环中,对任意的\(a\)\(dis[a][k]\)\(dis[k][a]\)是不会被更新的,也就是说此时的\(edge[i][j]+=edge[i][k]\times edge[k][j]\)\(edge[i][k]\)\(edge[k][j]\)经过的点都是严格小于\(k\)的点,而这些路径又会经过\(k\),所以这些路径在之前是没有被统计过的,这是不重

不漏的话很显然

posted @ 2024-02-06 17:09  最爱丁珰  阅读(1)  评论(0编辑  收藏  举报