博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
lightoj 1019
阅读量:6756 次
发布时间:2019-06-26

本文共 1350 字,大约阅读时间需要 4 分钟。

裸的最短路 dijkstra

#include
#include
#include
#include
using namespace std;const int MAXN = 101;const int INF = 0x3f3f3f3f;int dist[MAXN], vis[MAXN], mat[MAXN][MAXN];int main(){ int t, u, v, w, n, m, CASE(0); scanf("%d", &t); while(t--){ scanf("%d%d", &n, &m); memset(mat, 0x3f, sizeof mat); memset(dist, 0x3f, sizeof dist); for(int i = 0;i < m;i ++){ scanf("%d%d%d", &u, &v, &w); mat[u][v] = mat[v][u] = min(mat[u][v], w); } dist[1] = 0; memset(vis, 0, sizeof vis); vis[1] = 1; for(int i = 1;i <= n;i ++) if(mat[1][i] != INF) dist[i] = mat[1][i]; for(int i = 0;i < n;i ++){ int minn(INF), k(-1); for(int j = 1;j <= n;j ++){ if(!vis[j] && minn > dist[j]){ minn = dist[j]; k = j; } } if(k == -1) break; vis[k] = 1; for(int j = 1;j <= n;j ++){ if(!vis[j] && mat[k][j] + dist[k] < dist[j]) dist[j] = mat[k][j] + dist[k]; } } printf("Case %d: ", ++CASE); if(dist[n] == INF) printf("Impossible\n"); else printf("%d\n", dist[n]); } return 0;}

转载于:https://www.cnblogs.com/wangzhili/p/3950202.html

你可能感兴趣的文章
Spring MVC 拦截 js,css,png 等资源
查看>>
Windows 7 共享文件夹 给 VirtualBox 中的 Ubuntu 14
查看>>
iOS开发UI篇—字典转模型
查看>>
Web接口测试工具--Jmeter
查看>>
[LeetCode] Remove K Digits 去掉K位数字
查看>>
spring profile 多环境配置管理
查看>>
iOS开发 iOS10推送必看
查看>>
C#设计模式——抽象工厂模式(Abstract Factory Pattern)
查看>>
软件测试--关键字
查看>>
nginx知识点
查看>>
字符串操作(字符数统计及字符串反转)
查看>>
递归写法参考
查看>>
【Python】学习笔记八:面向对象
查看>>
单片机中PWM的原理与控制程序
查看>>
RStudio中,出现中文乱码问题的解决方案
查看>>
【SQL 触发器】
查看>>
Kafka server部署配置优化
查看>>
(转) Artificial intelligence, revealed
查看>>
【转】VS项目属性的一些配置项的总结
查看>>
Project、Target、Workspace and Scheme
查看>>