最简单最短路
来源:互联网 发布:义乌淘宝培训哪里好 编辑:程序博客网 时间:2024/04/27 18:21
A - 最短路
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u
Submit
Status
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
这道题是最短路的最简单的题,可以用floyd,dij,spfa等做最短路的算法做出来,在这里本人用了dij算法做出来了。
#include"stdio.h"#include"iostream"#include"string.h"#define INF 0x7f7f7f7fusing namespace std;int dis[105],maze[105][105],mark[105];int n,m;void dij(int st,int en){ dis[st]=0; for(int i=1;i<n;i++) { int minn=INF; int rec; for(int j=1;j<=n;j++) { if(!mark[j]&&dis[j]<=minn) { minn=dis[j]; rec=j; } } mark[rec]=true; for(int j=1;j<=n;j++) { if(!mark[j]&&dis[j]>dis[rec]+maze[rec][j]) dis[j]=dis[rec]+maze[rec][j]; } } printf("%d\n",dis[en]);}int main(void){ int x,y,len; while(scanf("%d%d",&n,&m)) { memset(dis,INF,sizeof(dis)); memset(mark,false,sizeof(mark)); memset(maze,INF,sizeof(maze)); if(n==0&&m==0) break; while(m--) { scanf("%d%d%d",&x,&y,&len); if(x!=y && maze[x][y]>len) { maze[x][y]=len; maze[y][x]=len; } } dij(1,n); } return 0;}
0 0
- 最简单最短路
- HDOJ 最短路 2544【简单最短路】
- 简单最短路
- poj2387(最简单的最短路)
- poj1847~简单最短路问题
- HDOJ2544(简单最短路)
- 模板--最短路(简单)
- HDOJ2112 最短路简单题
- HDU 2544 最短路 (简单的最短路)
- HDOJ 2544 最短路 (简单的最短路之spfa)
- A - 最简单的最短路 -最短路径
- 最短路
- 最短路
- 最短路
- 最短路
- 最短路
- 最短路
- 最短路
- 自然语言处理在现实生活中运用
- java积累
- Java代码实现MySQL数据库导出
- android开发的学习路线
- 常用控件—UILabel
- 最简单最短路
- C++11新特性之 default and delete specifiers
- 就从这里开始吧
- 购物商城1
- ctypes
- NYOJ 499 迷宫
- 负载均衡 后端机如何获取用户真实IP
- 负载均衡 session问题
- select poll epoll 区别