九度OJ 1341:艾薇儿的演唱会 (最短路)
来源:互联网 发布:俄语翻译软件 编辑:程序博客网 时间:2024/04/28 13:13
- 题目描述:
艾薇儿今天来到了中国,她计划两天后在哈尔滨举行一场个人的演唱会。由于出现了紧急情况,演唱会的举办方要求艾薇儿提前举行演唱会。艾薇儿现在在北京,她需要找出一条从北京到哈尔滨耗时最短的线路,以便尽快到达哈尔滨。
中国的铁路线非常复杂,有很多条路线可以从北京到达哈尔滨。艾薇儿在网上找到了铁路线各个线路上所需花费的时间,但是她还是看不出来哪一条线路可以最快地到达哈尔滨。你有办法帮助艾薇儿找出从北京到哈尔滨所需的最短时间吗?找出来的人可以免费获得现场演唱会门票一张哦。
- 输入:
输入的第一行包括一个整数N(2<=N<=100),代表艾薇儿手上拿到的设有铁路站点的城市的个数,其中城市从1到n进行编号。以及M(1<=M<=1000),代表有M条铁路线路,每条铁路线路只连接两个城市。
接下来的一行有两个数,a和b(1<=a,b<=N),分别表示北京和哈尔滨的编号。
接下来有M行,每行有三个数x,y(1<=x,y<=N),t(1<=t<=1000),表示从城市x到城市y所需时间为t。
- 输出:
请输出艾薇儿从北京到哈尔滨最少需要多长时间。你可以放心地认为肯定存在一条路线可以从北京到哈尔滨。
- 样例输入:
3 41 31 2 13 2 32 3 43 1 8
- 样例输出:
4
- 提示:
1.火车能从城市x到城市y,就能从城市y到城市x,并且同一列火车来回所花费的时间是一样的。如果在x和y之间有不止一辆火车通行,则不同火车从x到y或者从y到x所花费的时间可能不相同。
2.虽然城市数有N个,但不保证所有的城市都能互相到达。可以保证的是,从北京到哈尔滨一定会有一条通路。
思路:
最短路问题,需要注意重边的更新。
代码:
#include <stdio.h>#include <limits.h> #define N 100#define M 10000#define INF (INT_MAX/2) int n;int v[N];int d[N];int p[N][N]; void init(){ int i, j; for (i=0; i<n; i++) { v[i] = 0; d[i] = INF; for (j=0; j<n; j++) p[i][j] = INF; }} void printDij(){ for (int i=0; i<n; i++) printf("%d ", d[i]); printf("\n");} void dij(int k, int r){ int i; v[k] = 1; d[k] = 0; while(k != r) { for (i=0; i<n; i++) { if (!v[i] && p[i][k] + d[k] < d[i]) d[i] = p[i][k] + d[k]; } int md = INF; for (i=0; i<n; i++) { if (!v[i] && d[i] < md) { k = i; md = d[i]; } } if (d[k] == INF) break; v[k] = 1; }} int main(){ int i, m, x, y, a, b, t; while(scanf("%d%d", &n, &m) != EOF) { if (n == 0 && m == 0) break; init(); scanf("%d%d", &x, &y); for (i=0; i<m; i++) { scanf("%d%d%d", &a, &b, &t); if (t < p[a-1][b-1]) p[a-1][b-1] = p[b-1][a-1] = t; } dij(x-1, y-1); printf("%d\n", d[y-1]); } return 0;}/************************************************************** Problem: 1341 User: liangrx06 Language: C Result: Accepted Time:60 ms Memory:952 kb****************************************************************/
0 0
- 九度OJ 1341:艾薇儿的演唱会 (最短路)
- 九度oj-1341:艾薇儿的演唱会
- 九度oj 题目1341:艾薇儿的演唱会
- 九度OJ 1341 艾薇儿的演唱会(40分)
- 九度题目1341:艾薇儿的演唱会
- 九度 1341 -图最短路径 - 艾薇儿的演唱会
- 九度 题目1341:艾薇儿的演唱会(40分)
- 九度OJ-1447:最短路(Floyd)
- 九度oj 题目1447:最短路
- 九度OJ-1447:最短路
- 九度OJ 1100:最短路
- 九度OJ题目1447:最短路
- 最短路径Djikstra算法 模板+ 例题(九度acm1341: 艾薇儿的演唱会)
- 九度OJ 1008:最短路径问题 (最短路)
- 九度oj-1343-城际公路网【最短路】
- 九度OJ——1447最短路
- 九度OJ 1447 最短路 1008 最短路径问题
- 九度1008最短路
- Codeforces Round #331 (Div. 2)
- linux内核空间与用户空间通信
- java笔记_Map集合与单列设计模式
- 关于《游戏编程中的人工智能》的源代码的小错误
- 小结CSS Margin
- 九度OJ 1341:艾薇儿的演唱会 (最短路)
- UI根视图控制器
- android中的Application
- java和C#访问数据库字段空值
- java中为什么要实现序列化,什么时候实现序列化?
- [mysql]explain语句中的key_len计算
- ImageNet Classification with Deep Convolutional Neural Network解读
- HDU 5523 Game
- Struts2-----Ognl表达式语言