最短路算法之SPFA算法
来源:互联网 发布:淘宝V6会员贷款 编辑:程序博客网 时间:2024/06/07 07:07
SPFA(Shortest Path Faster Algorithm)算法自然有它的过人之处,它是BELLMAN-FORD算法的一种优化版本,一般认为算法复杂度为O(E)就好了 (其实我也不知道是O几)。
算法思想就是把源点加入队列,然后从队列里不断取出队首,用队首相关的边去松弛,若能松弛,则把被松弛的边的另一个端点加入队列(若已经在队列里就不用加了),如此反复知道队列为空。
vector<int>g[N], e[N];queue<int>q;bool in[N];int dis[N];void add(int u, int v, int c){g[u].push_back(v);e[u].push_back(c);}int spfa(int s, int t){memset(in, false, sizeof in);memset(dis, 0x3f, sizeof dis);q.push(s);in[s] = true;dis[s] = 0;while (!q.empty()){int u = q.front(); q.pop();//记得消去in标志in[u] = false;for (int i = 0; i < g[u].size(); i++){int v = g[u][i], c = e[u][i];if (dis[v]>dis[u] + c){dis[v] = dis[u] + c;if (!in[v]){q.push(v);//记得带上in标志in[v] = true;}}}}return dis[t];}
0 0
- SPFA算法之最短路。
- 最短路之SPFA算法
- 最短路之SPFA算法
- 最短路算法之SPFA算法
- 最短路算法之SPFA算法
- 最短路--SPFA算法
- 最短路SPFA算法
- 最短路: SPFA算法
- spfa算法 最短路
- SPFA最短路算法
- 最短路之Dijkstra算法、Floyd算法、SPFA算法
- hdu2544 最短路(SPFA算法)
- 最短路算法(SPFA)
- 关于最短路算法SPFA
- 最短路(SPFA)算法
- 最短路SPFA 算法详解
- SPFA算法 (最短路)
- 最短路【SPFA】算法模板
- 用shell写的俄罗斯方块游戏
- 使用自带的fxc debug shader
- STL之next_permutation和prev_permutation函数
- hdu 1865 1sting Java水题系列
- hdoj 5131 Song Jiang's rank list 【模拟】
- 最短路算法之SPFA算法
- 二分图带权匹配 KM算法与费用流模型建立
- cf 567 c
- swift学习笔记一: 调用Objective-C代码
- Android编码规范
- Linux学习笔记----rpm命令管理-----校验和文件提取
- C源码@数据结构与算法->AVL树
- Android上传图片到本地服务器
- SAP FICO期初开账存货导入尾差