社交网络
单源最短路求解路径条数很好做,但是多源最短路要稍微麻烦一点
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\),所以这些路径在之前是没有被统计过的,这是不重
不漏的话很显然