最短路径之Spfa算法
题目:http://acm.nefu.edu.cn/JudgeOnline/problemshow.php?problem_id=208
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <queue>using namespace std;
const int N = 105;
const int INF = 1<<29;int map[N][N];
int dist[N];
bool vis[N];
queue<int> Q;int n,m;void Spfa(int s)
{memset(vis,0,sizeof(vis));for(int i=0; i<n; i++)dist[i] = INF;dist[s] = 0;while(!Q.empty()) Q.pop();Q.push(s);vis[s] = 1;while(!Q.empty()){int u = Q.front();vis[u] = 0;Q.pop();for(int i=0; i<n; i++){if(map[u][i] == INF) continue;if(dist[i] > dist[u] + map[u][i]){dist[i] = dist[u] + map[u][i];if(!vis[i]){vis[i] = 1;Q.push(i);}}}}
}void Init()
{for(int i=0; i<n; i++)for(int j=0; j<n; j++)map[i][j] = (i == j) ? 0 : INF;
}int main()
{while(cin>>n>>m){Init();while(m--){int u,v,w;cin>>u>>v>>w;map[u][v] = w;}int s,t;cin>>s>>t;Spfa(s);if(dist[t] == INF) cout<<"-1"<<endl;else cout<<dist[t]<<endl;}return 0;
}
最短路径之Spfa算法相关推荐
- hdu 3790(最短路径问题 SPFA算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3790 最短路径问题 Time Limit: 2000/1000 MS (Java/Others) ...
- 最短路径(SPFA算法)
1200: 小明的难题 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 363 Solved: 103 [Submit][Status][Web Boar ...
- 最短路径算法——SPFA算法
在家的这几天效率还是蛮低的,总是有其他的事情耽搁,然后最近就在做搜索题,然后做了两个搜索关于最短路径的,点数少的时候之前学的佛洛依德还能派上点用处,可以点数过1000之后就容易超时了,然后看他们的题解 ...
- 图论-最短路径--3、SPFA算法O(kE)
SPFA算法O(kE) 主要思想是: 初始时将起点加入队列.每次从队列中取出一个元素,并对所有与它相邻的点进行修改,若某个相邻的点修改成功,则将其入队.直到队列为空时算法结束. 这个算 ...
- (最短路径算法整理)dijkstra、floyd、bellman-ford、spfa算法
一.floyd 1.介绍 floyd算法只有五行代码,代码简单,三个for循环就可以解决问题,所以它的时间复杂度为O(n^3),可以求多源最短路问题. 2.思想: Floyd算法的基本思想如下:从任意 ...
- 最短路径:Dijkstra、BellmanFord以及SPFA算法
最短路径问题 1.Dijkstra算法 简介 (1)Dijkstra算法伪代码 (2)C++ 邻接表版代码 (3)优化 (4)题型分析 2.Bellman Ford算法 简介 (1)Bellman算法 ...
- 最短路径(Dijkstra、Bellman-Ford和SPFA算法)
最短路径(Dijkstra.Bellman-Ford和SPFA算法) 前言 图的存储方式 邻接矩阵 邻接表 链表建立 利用vector 结构体 核心思路 Dijkstra算法 图解 基本思想 求解步骤 ...
- #1093 : 最短路径·三:SPFA算法(邻接表)
#1093 : 最短路径·三:SPFA算法 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 万圣节的晚上,小Hi和小Ho在吃过晚饭之后,来到了一个巨大的鬼屋! 鬼屋中一共 ...
- 最短路径——SPFA算法(蓝桥杯试题集)
*对于本题的floyd题解请跳转:http://blog.csdn.net/sm9sun/article/details/53285870 题目链接: http://lx.lanqiao.cn/pro ...
最新文章
- 北大网络教育计算机作业,北大网络教育(计算机专业)网络基础作业答案.doc
- C中的野指针—如何避免
- 一个对象,数组去重的方法
- OpenSsl工具的介绍
- FortiGate双链路不同运营商上网配置
- 搭建kafaka集群
- 转载:Visio2013的密钥
- 短信API接口demo示例-C#/Message/Send
- 做机器学习算法工程师是什么样的工作体验?
- 父子id mysql,一道关于数据库(经典父子级 ID 关联)更新题
- 6-1 哈夫曼树及哈夫曼编码分数
- b站视频素材哪里找?怎么找b站素材?
- B端产品-定义、分类、竞品分析、与C端产品的区别
- Android WebView 不能弹出alert的对话框
- 计算机发布信息的方法,介绍两种用电脑给手机发短信的方法
- 六、hibernate表与表之间的关系(多对多关系)
- 美国国家标准与技术研究院(NIST)
- 日常微博营销技巧究竟有哪些呢?
- 经典基础算法的一些精髓和注意点总结
- 【Python CUDA版】河北工业大学计算机图像处理实验二:图像直方图及灰度变换