poj3255 Roadblocks--次短路spfa
来源:互联网 发布:大连知行中学乒羽中心 编辑:程序博客网 时间:2024/05/07 21:49
原题链接:http://poj.org/problem?id=3255
题意:n个点,标号为1到n,m条路,u,v,len,表示u与v之间路长为len,求1到n第二短路长,题目保证存在第二短路径。
#define _CRT_SECURE_NO_DEPRECATE #include<iostream>#include<vector>#include<cstring>#include<queue>#include<stack>#include<algorithm>#include<cmath>#define INF 99999999#define eps 0.0001using namespace std;struct Edge{int v;int len;int next;};int n, m;int cnt;Edge edge[200010];int head[5010];bool vis[5010];int dis[5010];int rdis[5010];void add(int u, int v, int len){edge[cnt].v = v; edge[cnt].len = len; edge[cnt].next = head[u]; head[u] = cnt++;edge[cnt].v = u; edge[cnt].len = len; edge[cnt].next = head[v]; head[v] = cnt++;}void spfa(int s, int d[]){memset(vis, 0, sizeof(vis));queue<int> Q;d[s] = 0;vis[s] = 1;Q.push(s);while (!Q.empty()){int u = Q.front();vis[u] = 0;Q.pop();for (int i = head[u]; i != -1; i = edge[i].next){int v = edge[i].v;if (d[v] > d[u] + edge[i].len){d[v] = d[u] + edge[i].len;if (!vis[v]){vis[v] = 1;Q.push(v);}}}}}int main(){int u, v, len;while (~scanf("%d%d", &n, &m)){//initmemset(head, -1, sizeof(head));cnt = 0;fill(dis, dis + n + 1, INF);fill(rdis, rdis + n + 1, INF);while (m--){scanf("%d%d%d", &u, &v, &len);add(u, v, len);}spfa(1, dis);spfa(n, rdis);int ans = INF;for (int i = 1; i <= n; i++){for (int j = head[i]; j != -1; j = edge[j].next){int v = edge[j].v;int len = edge[j].len;int d = dis[i] + rdis[v] + len;if (d > dis[n] && d < ans)ans = d;}}printf("%d\n", ans);}return 0;}
1 0
- poj3255 Roadblocks--次短路spfa
- POJ3255:Roadblocks(次短路 SPFA+A星)
- POJ3255 Roadblocks , 次短路
- POJ3255 Roadblocks(次短路)
- POJ3255 Roadblocks 【次短路】
- poj3255-Roadblocks-次短路
- 次短路 poj3255 Roadblocks
- POJ3255 Roadblocks 次短路
- Poj3255 Roadblocks SPFA算法解“次短路”问题 代码&注释
- poj3255 Roadblocks (次短路)
- POJ3255 Roadblocks dij求次短路 [模板]
- POJ3255 Roadblocks 次短路Dijkstra做法
- POJ3255-Roadblocks-dijkstra求次短路
- 【POJ3255】【洛谷2865】[Usaco2006 Nov]路障Roadblocks(次短路)
- POJ 3255 Roadblocks 次短路 SPFA
- Roadblocks (SPFA次短路求法)
- 次短路--poj3255
- poj3255 次短路
- java 简单模拟抢红包
- 6. ZigZag Conversion
- Swift 学习第一天
- 云计算理论基础
- 关于快照隔离和幻影读的一些深入思考
- poj3255 Roadblocks--次短路spfa
- 【牛客网】马三来刷题之串的模式匹配
- java 简单模拟抢红包2
- 继承方式实现对目标对象的方法增强
- Android imageview图片缩放实现
- 自我介绍
- C/C++关于字符串string、char*字符串数组与其他类型转换
- 查看MySQL配置文件路径及相关配置
- Oracle is null不走索引问题