众所周知,spfa已死。
我们能做到的,只是尽可能的优化一点,减少被卡死的情况。
SLF优化
SLF:即 Small Label First,就是每次进队元素跟队首比较,若dis大于队首元素,则将其插到队尾,否则插到队首。
LLL优化
LLL:即 Large Label Last,每次进队元素的dis与队列中的平均dis比较,若小则插到队首,否则插到队尾。
这两种优化的实现都是基于双端队列的。
一般使用SLF优化。
然而,这两种优化只能让其死得没那么惨,该死还是会死。
所以打比赛还是乖乖地写dijkstra吧。