原题链接
https://ac.nowcoder.com/acm/contest/11258/J
题目大意
有人将Floyd算法写错成一下形式:
for i from 1 to n
for j from 1 to n
for k from 1 to n
dis[i][j] <- min(dis[i][j] , d[i][k] + dis[k][j])
给定 n ( 1 ≤ n ≤ 2000 ) n(1\le n\le 2000) n(1≤n≤2000)个点 m ( 1 ≤ m ≤ 5000 ) m(1\le m\le 5000) m(1≤m≤5000)条边的有向图,求按照错误的Floyd算法执行后,有多少 d i s [ i ] [ j ] dis[i][j] dis[i][j]和正确的算法结果一样。
题解
如果我们直接用Floyd算法进行计算的话,复杂度为 O ( n 3 ) O(n^3) O(n3),肯定是不行的。
再想想其他计算最短路的算法,还有 d i j k s t r a dijkstra d

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



