SPFA — shotest path faster algorithm,是一个效率很高的求最短路径的算法,也可以说是bellman-ford算法的优化版。
具体做法是先把起点放入一个队列中。每次取出队顶元素,并pop,看跟该点相邻的其他点是否能够松弛,如果可以松弛,改变数值,如果该点不在队列中,则把能该点push到队列中,直到队列为空。
为了速度更快,可以用邻接表来存储,这样,找与起点相邻的点的速度就会很快!
若要判负环路,则记录一个点的入队次数,若超过边数,则有负权环。
自己用SPFA+静态邻接表写的hdu_2544:可以用作模板