基于SPFA
(1)统计每个点入队的次数,如果某个点入队n次,则说明存在负环
(2)统计当前每个点的最短路中所包含的边数,如果某点的最短路所包含的边数>=n,则也说明存在环
所有点加入队列
所有点dist[i]=0;
小trick1 spfa算法很有可能会超时,这时候可以:
当所有点的入队次数超过2n时,我们就认为图中有很大可能是存在负环的
trick2 提高找负环效率:把队列改成栈存储
基于SPFA
(1)统计每个点入队的次数,如果某个点入队n次,则说明存在负环
(2)统计当前每个点的最短路中所包含的边数,如果某点的最短路所包含的边数>=n,则也说明存在环
所有点加入队列
所有点dist[i]=0;
小trick1 spfa算法很有可能会超时,这时候可以:
当所有点的入队次数超过2n时,我们就认为图中有很大可能是存在负环的
trick2 提高找负环效率:把队列改成栈存储
上一篇:java 姓名加密
下一篇:CSSDay09 浮动详解
舞动的蝴蝶圆环,蝴蝶群飞舞
spfa判断负环spfa+bfs#include<iostr
链式前向星
举报文章
请选择举报类型
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M