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 1 1 2 3 3 3 1 2 5 2 3 5 3 1 2 0 0
Sample Output
3 2

Dijkstra模板(最短路)

<pre name="code" class="cpp">void ShortestPath()
{  int i, j, u, temp, newdist;  if (v<1 || v>n)    return;  for (i=1; i<= n; i++)  {  dist[i] = a[v][i];  s[i] = 0;  }  dist[v] = 0, s[v] = 1;  for (i = 2; i <= n; i++)  {  temp = MAX;  u = v;  for (j = 1; j <= n; j++)  if ((!s[j])&&(dist[j]<temp))  {  u = j;  temp = dist[j];  }  s[u] = 1;  for (int j = 1; j <= n; j++)  if((!s[j])&&(a[u][j]<MAX))  {  newdist = dist[u]+a[u][j];  if (newdist<dist[j])    dist[j] = newdist;  }  }
}
v在主函数里初始化为1,表示从1开始的最短路
dist[i]表示从1到 i 的最短路
a[ ][ ]是个二元数组,a[ i ][ j ]=w表示i 到 j 的路径长度为 w.
#define MAX 0x7fffffff
一般先在主函数里把所有的a[ ][ ]置为无穷大(MAX),表示所有路都不通。
s[ ]为一元数组,若s[ i ]=1表示 i 被划在粗线内,s[ i ]=0反之。

具体原理网上很多。

贴上此题代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#define MAX 0x7fffffff
using namespace std;int a[105][105],dist[105],s[105];
int v,m,n;
void ShortestPath()
{int i, j, u, temp, newdist;if (v<1 || v>n)    return;for (i=1; i<= n; i++){dist[i] = a[v][i];s[i] = 0;}dist[v] = 0, s[v] = 1;for (i = 2; i <= n; i++){temp = MAX;u = v;for (j = 1; j <= n; j++)if ((!s[j])&&(dist[j]<temp)){u = j;temp = dist[j];}s[u] = 1;for (int j = 1; j <= n; j++)if((!s[j])&&(a[u][j]<MAX)){newdist = dist[u]+a[u][j];if (newdist<dist[j])    dist[j] = newdist;}}
}int main()
{while(cin>>n>>m&&!(n==0&&m==0)){for(int i=0;i<=n;i++)for(int j=0;j<=n;j++)a[i][j]=MAX;for(int i=0;i<m;i++){int x,y,z;cin>>x>>y>>z;a[x][y]=a[y][x]=z;}v=1;ShortestPath();cout<<dist[n]<<endl;}return 0;
}

转载于:https://www.cnblogs.com/martinue/p/5490562.html

hdu 2544(最短路)相关推荐

  1. hdu 2544 最短路 (dijkstra)

    http://acm.hdu.edu.cn/showproblem.php?pid=2544 最简单的最短路了吧 改天试试优化版本的 #include<stdio.h> #include& ...

  2. HDU 2544 最短路(各种最短路算法的实现)

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=2544 题目: Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂 ...

  3. hdu 2544最短路(Dijkstra)

    最短路                    Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/O ...

  4. hdu 2544最短路 Floyd算法

    最短路 Time Limit : 5000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Problem Descrip ...

  5. hdu 2544 最短路 Dijkstra算法

    最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Desc ...

  6. HDU 2544最短路dijkstra模板题

    最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  7. hdu 2544 最短路

    Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要 ...

  8. HDU 2544 最短路 最短路入门

    点击打开链接 最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  9. HDU 2544 最短路(最短路入门)

    链接:click here 题意: 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找 ...

  10. 知识点四 图论:dijkstra (HDU 2544 +HDU 1874)

    dijkstra(狄克斯特拉)知识点 1.可以用于解决最短路问题 2.dijkstra算法在数据量比较小的情况下可以直接开邻接矩阵. 3.不能处理含有负权环的图 对dijkstra算法的理解 dijk ...

最新文章

  1. Linux下进程通信知识点学习笔记(一)
  2. 基于模糊聚类的色彩迁移算法
  3. pyinstaller打包教程及错误RuntimeError: Unable to open ./shape_predictor_68_face_landmarks.dat
  4. android app功能 配置,配置安装时分发  |  Android 开发者  |  Android Developers
  5. iOS9 白名单问题 -canOpenURL: failed for URL: xx - error:This app is not allowed to query for scheme x...
  6. 62、滑动窗口的最大值
  7. Hibernate常见问题
  8. 三维重建 几何方法 深度学习_基于深度学习的三维重建算法:MVSNet、RMVSNet、PointMVSNet、Cascade系列...
  9. linux多线程学习(二)——线程的创建和退出
  10. 演出节目名字_华晨宇——让我看娱乐节目看到感动
  11. EnterpriseLibrary2.0的学习-DAAB
  12. 书店管理系统(C++初学者友好版)
  13. 华硕 PRIME H410M-K + i5-10400F 黑苹果 EFI文件
  14. 【PhotoShop基础A篇】磨皮/图层/液化
  15. 港版支付宝注册用户达150万 普及仍面临困难
  16. 热血格斗场(二分法+STL运用)
  17. idea设置project路径_idea 启动界面修改显示的项目存储物理路径,reopen project
  18. python激光扫描雷达_一文详解固态激光雷达的里程计(loam_livox)
  19. SV绿皮书笔记(九)暂时完结
  20. 互联网行业的一些英文简称(缩写),别人家一说你又懵了!

热门文章

  1. 2019年5月,国际计量单位实施新定义
  2. 解决办法:av_interleaved_write_frame()返回-22 错误
  3. 现代企业制度,无助于解决企业亏损倒闭问题
  4. 管理感悟:鼓励正确的山头主义
  5. 继承与data member之单一继承
  6. python入口文件_用Python作GIS之三:入口程序 - stargui.py
  7. python运算符_零基础学习 Python 之运算符
  8. php 开启 pathinfo,Nginx + php-fpm 开启 PATH_INFO 模式
  9. csgo降低延迟指令_ILP——指令级并行
  10. java date nov_Java DateTime格式为此