hdu2544 最短路--单源最短路径
发布日期:2021-10-03 20:32:06
浏览次数:2
分类:技术文章
本文共 1399 字,大约阅读时间需要 4 分钟。
原题链接:
一:原题内容
Problem Description
在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的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 11 2 33 31 2 52 3 53 1 20 0
Sample Output
32
二:分析理解
一个简单的单源最短路径问题。
三:AC代码
#include#include #include using namespace std;int N;int M;int A, B, C;int a[105][105];int visited[105];int ans[105];int main(){ while (scanf("%d%d", &N, &M) && (N || M)) { memset(visited, 0, sizeof(visited)); memset(a, 0, sizeof(a)); memset(ans, 0, sizeof(ans)); for (int i = 0; i < M; i++) { scanf("%d%d%d", &A, &B, &C); a[A][B] = a[B][A] = C; } //Dijkstra for (int i = 2; i <= N; i++) { if (a[1][i]>0) ans[i] = a[1][i]; else ans[i] = INT_MAX; } visited[1] = 1; for (int i = 1; i <= N - 1; i++) { int min = INT_MAX; int minPos; for (int j = 1; j <= N; j++) { if (!visited[j] && ans[j] < min) { min = ans[j]; minPos = j; } } visited[minPos] = 1; for (int k = 1; k <= N; k++) { if (!visited[k] && a[minPos][k]>0 && a[minPos][k] + min < ans[k]) ans[k] = a[minPos][k] + min; } } printf("%d\n", ans[N]); } return 0;}
转载地址:https://blog.csdn.net/LaoJiu_/article/details/51014013 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月18日 03时14分25秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
VMware 虚拟化编程(12) — VixDiskLib Sample 程序使用
2019-04-27
VMware 虚拟化编程(13) — VMware 虚拟机的备份方案设计
2019-04-27
VMware 虚拟化编程(14) — VDDK 的高级传输模式详解
2019-04-27
VMware 虚拟化编程(15) — VMware 虚拟机的恢复方案设计
2019-04-27
Socket 网络编程实践经验
2019-04-27
消息队列在分布式系统中的应用
2019-04-27
计算机网络基础 — Linux 虚拟交换机
2019-04-27
基于 Linux Bridge 的 Neutron 多平面网络实现原理
2019-04-27
OpenvSwitch — Overview
2019-04-27
启用 SR-IOV 解决 Neutron 网络 I/O 性能瓶颈
2019-04-27
CentOS7 通过 YUM 升级 VIM8
2019-04-27
Cinder 架构分析、高可用部署与核心功能解析
2019-04-27
我非要捅穿这 Neutron(一)网络实现模型篇
2019-04-27
我非要捅穿这 Neutron(二)上层资源模型篇
2019-04-27
KVM 开启嵌套虚拟化
2019-04-27
OpenStack 虚拟机冷/热迁移功能实践与流程分析
2019-04-27
Libvirt Live Migration 与 Pre-Copy 实现原理
2021-06-30
OpenStack 虚拟机的磁盘文件类型与存储方式
2021-06-30