P3094 [USACO13DEC]Vacation Planning S
提供三种做法:
1、Floyd
由于 ,而弗洛伊德的复杂度是 ,这道题需要全源最短路,而弗洛伊德是最好写的,也是最能令人理解的。还不会弗洛伊德的看这里。
代码:这里。
2、关于SPFA,它复活了!
众所周知,一遍全源最短路其实就相当于跑 遍单源最短路, 是结点个数。都说 SPFA
已死,但是对于这道题,SPFA
其实也不错。有兴趣的可以去看看 SPFA和Dijkstra对比。
代码:这里。
3、Dijkstra
正常而言,Dijkstra
速度比 SPFA
快,我写的是堆优化,代码:这里。
4、对比
最后,这三个最短路谁最快呢?
, 是边数, 是顶点数。
,最坏 , 是常数。
。
但是对于这道题:
提交均用 C++14 (GCC 9)
,无 。
开 以及各种优化已经卡进 ,目前最优,评测记录,不过考试比赛不涉及负边权,如果是单源,首选 。 已死,并且永远也不会复活。