在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗?

Input 输入包括多组数据。每组数据第一行是两个整数N、M(N<=100,M<=10000),N表示成都的大街上有几个路口,标号为1的路口是商店所在地,标号为N的路口是赛场所在地,M则表示在成都有几条路。N=M=0表示输入结束。接下来M行,每行包括3个整数A,B,C(1<=A,B<=N,1<=C<=1000),表示在路口A与路口B之间有一条路,我们的工作人员需要C分钟的时间走过这条路。
输入保证至少存在1条商店到赛场的路线。
Output 对于每组输入,输出一行,表示工作人员从商店走到赛场的最短时间 Sample Input

2 1
1 2 3
3 3
1 2 5
2 3 5
3 1 2
0 0

Sample Output

3
2

其实是很水的题目.......我没有写过spfa()所以用spfa写wa了 好多发原来是不在队列里面的扔进去这边出现问题了......

算是自己写的第一个spfa算法吧

代码:

#include<iostream>
#include<queue>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
typedef long long ll;
const int maxn = 2e5+10;
int n,m;
int vis[1005];
int dis[1005];
const int inf = 0x3f3f3f3f;
int maze[1005][1005];
int spfa()
{for(int i =1;i<= n ;i++)vis[i]= 0 ;for(int i =1;i<=n;i++)dis[i] = inf;vis[1] = 1;dis[1] = 0;queue<int>qu;qu.push(1);while(qu.empty()==0){int tt = qu.front();qu.pop();// biaoshi xianzailiyong ta  songchi vis[tt] = 0;for(int i = 1;i<=n;i++){if(dis[i] > (dis[tt] + maze[tt][i])){dis[i] = dis[tt] + maze[tt][i];//bei songchi if(vis[i] == 0){qu.push(i);vis[i] = 1;}}  }   }return dis[n];
}
int main()
{while(scanf("%d%d",&n,&m)!=EOF){if(n==0&&m==0)break;for(int i =1;i<=n;i++){for(int j =1;j <= n ;j++){if(i==j)maze[i][j] = 0;else maze[i][j] = inf;}}int x,y,val;for(int i =1;i<=m;i++){scanf("%d%d%d",&x,&y,&val);if(val < maze[x][y])maze[x][y] = maze[y][x] = val;}printf("%d\n",spfa());}return  0 ;
}

最短路 spfa算法相关推荐

  1. 图论刷水题记录(二)(最短路-----SPFA算法)

    继第一篇的后续,又来刷水题了,写的是SPFA算法,这个算法的复杂度比较玄学,感觉能不用就不用了,但是他的好处就是可以判断负圈. 3月26日: 1.POJ 1847 Tram 题意:在一个交通网络上有N ...

  2. 单源最短路 SPFA 算法模板

    简介 在图论中,最短路是十分重要的一部分,在很多问题中都有涉及 而现在所讲的 SPFA 算法是十分优秀的算法,时间复杂度为 O(k∗E)O(k*E) 其中 EE 是图的边数,而 kk 是一个常数,一般 ...

  3. 常用代码模板3——搜索与图论(Bellman-Ford算法 、spfa 算法、floyd算法、Kruskal算法、染色法、匈牙利算法 )

    目录 一.树与图的存储 二.树与图的遍历 (1) 深度优先遍历 -- 模板题 AcWing 846. 树的重心 (2) 宽度优先遍历 -- 模板题 AcWing 847. 图中点的层次 拓扑排序 -- ...

  4. 单源最短路 Dijkstra算法 和 SPFA算法

    单源最短路 •从一个点出发,到达其他顶点的最短路径的长度. •基本操作:松弛 •d[u]+map[u, v]< d[v]这样的边(u,v)称为紧的(tense),可以对它进行松弛(relax): ...

  5. ACM算法--spfa算法--最短路算法

    求单源最短路的SPFA算法的全称是:Shortest Path Faster Algorithm.      SPFA算法是西南交通大学段凡丁于1994年发表的.     从名字我们就可以看出,这种算 ...

  6. spfa算法_10行实现最短路算法——Dijkstra

    今天是算法数据结构专题的第34篇文章,我们来继续聊聊最短路算法. 在上一篇文章当中我们讲解了bellman-ford算法和spfa算法,其中spfa算法是我个人比较常用的算法,比赛当中几乎没有用过其他 ...

  7. 图论最短路:Bellman-Ford与其优化SPFA算法的一点理解

    文章目录 前言 一.对Bellman-Ford的深入理解 1. Bellman-Ford有什么用? 2. 什么是松弛操作? 3. Bellman-Ford的k次迭代意义? 4. 一个重要定理 5. 对 ...

  8. P1462 通往奥格瑞玛的道路(二分 迪杰斯特拉 最短路 + spfa最短路算法)

    题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己的家乡奥格瑞玛 题目描述 在艾泽拉斯, ...

  9. 最短路算法 :Bellman-ford算法 Dijkstra算法 floyd算法 SPFA算法 详解

     本文链接   :http://www.cnblogs.com/Yan-C/p/3916281.html . 在本文中因为邻接表在比赛中不如前向星好写,而且前向星效率并不低所以,本文的代码 存图只 ...

  10. 03 最短路 dijkstra算法spfa算法floyd算法(附带实例代码) 图论-1

    文章目录 最短路 邻接表的图如下 邻接矩阵如下图 链表实现邻接表实现代码 单源最短路径 Dijkstra 算法 朴素版本 Dijkstra 实现代码 堆优化的dijkstra算法代码实现 Bellma ...

最新文章

  1. 关于前后端分离我的理解
  2. java方面的文献综述怎么写_如何写文献综述?
  3. SpringBoot_日志-指定日志文件和日志Profile功能
  4. python自动化测试报告 之 allure_Pytest+ Allure + Jenkins 自动化测试报告
  5. 明略数据是谁?为何能拿下腾讯在行业AI的高额投资
  6. 蓝桥杯 BASIC-8 基础练习 回文数
  7. 51nod 1285山峰和分段
  8. 最新教师计算机测试题,信息技术教师基本功测试题
  9. python3写入txt_[Python3] 写入文本文件[TZZ]
  10. 分布式事务处理【TX-LCN】
  11. 用Python解矩阵方程——Numpy模块
  12. 如何正确安装独立显卡?图文详解教会你安装独立显卡
  13. mailgun php版本,php – Mailgun发送带附件的邮件
  14. wannier拟合能带总是拟合不上_科学网-Wannier90输入文件中num_wann, num_bands, 和energy window等参数设置规则-李云海的博文...
  15. Android指南针陀螺仪开发
  16. 网站必备之简繁切换功能实现 1
  17. 人脸检测--传统方法
  18. python-random模块
  19. Unity3D插件 AnyPortrait 2D骨骼动画制作
  20. 计算地图经纬点之间的距离

热门文章

  1. Android2.2 新特性
  2. LeetCode刷题笔记-回溯法-分割回文串
  3. Django index_together设置
  4. 进程线程(java.lang.Thread)详解
  5. windows server 2003产生的 Minidmp蓝屏文件分析求助
  6. 程序员必知的Python陷阱与缺陷列表
  7. erlang 小程序:整数序列,搜索和为正的最长子序列
  8. JVM——类加载机制(二)
  9. mysql中文乱码--存入mysql里的中文变成问号的解决办法
  10. Windows Server 2008 R2入门之FTP服务器