版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、SPFA算法SPFA 全称 Shortest Path Faster Algorithm基本应用为快速求解单源最短路 Spfa算法可以说是Bellman-ford算法的改进版.spfa是利用队列来动态更新最小值. SPFA算法实现设Dist代表S到I点的当前最短距离,Fa代表S到I的当前最短路径中I点之前的一个点的编号。开始时Dist全部为+,只有DistS=0,Fa全部为0。 维护一个队列,里面存放所有需要进行迭代的点。初始时队列中只有一个点S。用一个布尔数组记录每个点是否处在队列中。 SPFA算法实现每次迭代,取出队头的点v,依次枚举从v出发的边v-u,设边的长度为len,判断Distv+
2、len是否小于Distu,若小于则改进Distu,将Fau记为v,并且由于S到u的最短距离变小了,有可能u可以改进其它的点,所以若u不在队列中,就将它放入队尾。这样一直迭代下去直到队列变空,也就是S到所有节点的最短距离都确定下来,结束算法。若一个点最短路被改进的次数达到n ,则有负权环。可以用spfa算法判断图有无负权环SPFA算法实现SPFA 在形式上和宽度优先搜索非常类似,不同的是宽度优先搜索中一个点出了队列就不可能重新进入队列,但是SPFA中一个点可能在出队列之后再次被放入队列,也就是一个点改进过其它的点之后,过了一段时间可能本身被改进,于是再次用来改进其它的点,这样反复迭代下去。在Be
3、llman-Ford算法中,要是某个点的最短路径估计值更新了,那么我们必须对所有边的终点再做一次松弛操作;在SPFA算法中,某个点的最短路径估计值更新,只有以该点为起点的边指向的终点需要再做一次松弛操作。在极端情况下,后者的效率将是前者的n倍。在平均情况下,SPFA算法的期望时间复杂度为O(E)。 要求判断图中是否存在负权环(有重边)Sample Input23 3 11 2 21 3 42 3 13 1 33 2 11 2 32 3 43 1 8POJ3259 WormholesSample OutputNOYES2个test case每个test case 第一行:N M WN个点M条双向
4、正权边W条单向负权边 第一个test case 最后一行3 1 3是单向负权边,3-1的边权值是-3/poj3259 Wormholes 判断有没有负权环 spfa by guo wei#include #include #include #include using namespace std;int F,N,M,W;const int INF = 1 30;struct Edge int e,w;Edge(int ee,int ww):e(ee),w(ww) Edge() ;vector G1000;int updateTimes1000;int dist1000;int Spfa(int
5、 v)for( int i = 1; i = N; +i)disti = INF;distv = 0;queue que;que.push(v);memset(updateTimes ,0,sizeof(updateTimes);while( !que.empty() int s = que.front();que.pop();for( int i = 0;i dists + Gsi.w ) diste = dists + Gsi.w;que.push(e); +updateTimese; if( updateTimese = N) return true;return false;int main()cin F;while( F-) cin N M W;for( int i = 1; i 1000; +i)Gi.clear();for( int i = 0; i s e t;Gs.push_back(Edge(e,t);Ge.push_back(Edge(s,t);for( int i = 0;i s e t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 锦西入学考试试卷及答案
- 常州市礼嘉中学高二下学期期末考试历史试卷
- 初三化学(单元模拟二)2027年上学期期末测试卷
- 2026年资产评估师(资产评估基础)试题及答案
- 2025年高职煤质分析技术(煤质分析操作)试题及答案
- 2025-2026年高二化学(考点集训)下学期期末测试卷
- 2025年高职水产动物疾病防治(病害诊疗)试题及答案
- 2025年大学本科一年级(汽车服务工程)汽车营销管理基础测试题及答案
- 2025年中职(旅游服务与管理)旅游政策与法规测试卷
- 2026年影像医师(影像诊断)考题及答案
- 2025年广西继续教育公需科目考试试题和答案
- 俄乌之战课件
- 2026年铁岭卫生职业学院单招职业倾向性考试题库及参考答案详解一套
- 2025年厨房燃气报警器安装合同
- 环孢素的临床应用
- 国开电大《11837行政法与行政诉讼法》期末答题库(机考字纸考)排序版 - 稻壳阅读器2025年12月13日12时58分54秒
- 2025河北廊坊市工会社会工作公开招聘岗位服务人员19名考试笔试备考试题及答案解析
- 2025国家电投集团中国重燃招聘18人笔试历年参考题库附带答案详解
- 框架日常维修协议书
- 医疗质量与安全管理小组架构及职责
- GA/T 744-2013汽车车窗玻璃遮阳膜
评论
0/150
提交评论