SPFA
2016-07-28 15:29
417 查看
[b]SPFA模版[/b]
单源:假设1为起点,适合于稀疏图,O(边数)
BFS求一个问题入队一次
SPFA入队多次,更加适合求两点之间的最短路,空间少,时间也少,但是如果求多源最短路还是建议大家用Floyd算法
单源:假设1为起点,适合于稀疏图,O(边数)
queue<int> q; while(!q.empty()) { int now=q.front(); q.pop(); for(int e=head[now];e!=-1;e=map[e].next) { if(dis[map[e].y]==-1)//没进过队 { /*1*/q.push(map[e].y); /*2*/dis[map[e].y]=dis[now]+1; } } }
BFS求一个问题入队一次
while(!e.empty()) { int now=q.front(),q.pop(); for()//省略 { flag[now]=0; if(dis[now]+map[e].w<dis[map[e.y]]) { dis[map[e].y]=map[e].w+dis[now]; if(flag[map[e].y]==0) { q.push(map[e].y); flag[map[e].y]=1; } } } }
SPFA入队多次,更加适合求两点之间的最短路,空间少,时间也少,但是如果求多源最短路还是建议大家用Floyd算法
相关文章推荐
- Android ServiceConnection
- zookeepeer选举master
- 权限修饰符
- 【Android基础知识】Android Studio 编译慢及 Adb connection Error:远程主机强迫关闭了一个现有的连接
- AC多模匹配算法过滤敏感词实例
- 针对域名做iptables
- C#实现字符串倒叙方法整理
- 广义线性模型.多项式分布.softmax
- NodeJS 异步变同步的方法遍历文件夹
- 最长公共子序列求解:递归与动态规划方法
- Web项目上传文件失败
- c语言和c++的输入,输出和异常
- thinkphp3.2.3 分页代码分享
- Django笔记---用户注册和登录验证(1)--Post请求
- iOS Block原理简析
- 代理设计模式Demo
- 包
- 进程与线程的区别(转)
- CodeForces 690C2 Brain Network (树上最大距离)
- C++Operator