hdu 2544最短路
2014-07-29 08:15
295 查看
B -最短路
Crawling in process...Crawling failedTime
Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u
SubmitStatusPracticeHDU
2544
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
Sample Output
思路:迪杰克斯拉算法
Crawling in process...Crawling failedTime
Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u
SubmitStatusPracticeHDU
2544
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
思路:迪杰克斯拉算法
<span style="font-size:18px;">#include<stdio.h> #include<string.h> #define INF 0x3f3f3f3;//找一个较大的数表示路口之间没路 int map[110][110],dis[110],visited[110]; void Dijkstra(int n,int x) { int i,p,j,min; for (i=1;i<=n;i++) { dis[i]=map[1][i];//从1路口到各路口的距离 visited[i]=0;//表示未被标记 } visited[x]=1;//将一号标记 for (i=1;i<=n;i++) { min=INF; for (j=1;j<=n;j++)/找出离1路口最短的路口 { if(!visited[j] && dis[j]<min) { p=j; min=dis[j]; } } visited[p]=1;//标记该点 for (j=1;j<=n;j++)//更新离1路口最近的距离 { if(!visited[j] && dis[p]+map[p][j]<dis[j]) { dis[j]=dis[p]+map[p][j]; } } } } int main() { int n,m,i,j,a,b,c; while(scanf("%d%d",&n,&m)!=EOF,n+m) { for (i=1;i<=n;i++)//初始化 { for (j=1;j<=n;j++) { map[i][j]=INF; } } for(i=1;i<=m;i++) { scanf("%d%d%d",&a,&b,&c); map[a][b]=map[b][a]=c;//二维数组里存着两个相连的路口 } Dijkstra(n,1); printf("%d\n",dis ); } return 0; }
相关文章推荐
- 最短路 Hdu-2544
- HDU 2544 最短路
- HDU 2544 Dijkstra 最短路
- HDU 2544 最短路 Dijkstra 算法、 Floyd 算法 Bellman_ford算法
- [hdu 2544] 最短路(SPFA版)
- HDU 2544 最短路——简单的模板题 dijkstra
- HDU 2544 最短路(单源最短路 dijkstra / floyd / dijkstra(堆优化)/dijkstra+邻接链表+堆优化)
- HDU 2544 最短路
- 杭电 hdu 2544 最短路
- [ACM] hdu 2544 最短路(dijkstra算法)
- HDU 2544 最短路
- HDU 2544 最短路 (最短路)
- HDU 2544 最短路 静态邻接表+优先队列 dijkstra
- HDU 2544 最短路(Dijkstra算法)
- Hdu 2544 最短路
- HDU 2544 最短路(各种最短路算法的实现)
- hdu 2544 最短路 (最短路径)
- hdu 2544 最短路
- HDU 2544 最短路(Floyd + Dijkstra + SPFA + 使用链式前向星优化的SPFA + 浅谈最短路)
- HDu 2544 最短路【dijkstra & floyed & SPFA 】