数据结构实验之图论七:驴友计划
来源:互联网 发布:ipad版淘宝不支持横屏 编辑:程序博客网 时间:2024/06/06 09:43
数据结构实验之图论七:驴友计划
Time Limit: 1000MS Memory Limit: 65536KB
SubmitStatistic
Problem Description
做为一个资深驴友,小新有一张珍藏的自驾游线路图,图上详细的标注了全国各个城市之间的高速公路距离和公路收费情况,现在请你编写一个程序,找出一条出发地到目的地之间的最短路径,如果有多条路径最短,则输出过路费最少的一条路径。
Input
连续T组数据输入,每组输入数据的第一行给出四个正整数N,M,s,d,其中N(2 <= N <= 500)是城市数目,城市编号从0~N-1,M是城市间高速公路的条数,s是出发地的城市编号,d是目的地的城市编号;随后M行,每行给出一条高速公路的信息,表示城市1、城市2、高速公路长度、收费额,中间以空格间隔,数字均为整数且不超过500,输入数据均保证有解。
Output
在同一行中输出路径长度和收费总额,数据间用空格间隔。
Example Input
14 5 0 30 1 1 201 3 2 300 3 4 100 2 2 202 3 1 20
Example Output
3 40
Hint
Author
xam
#include<stdio.h>#include<string.h>#include<stdlib.h>#define inf 0x3f3f3f3fint a[550][550], b[550][550];int n, m, s, d;void folyd();int main(){ int t; int i, j, u, v, w, c; scanf("%d", &t); while(t--) { scanf("%d %d %d %d", &n, &m, &s, &d); for(i = 0; i < n; i++) { for(j = 0; j< n; j++) { if(i == j) a[i][j] = b[i][j] = 0; else a[i][j] = b[i][j] = inf; } } for(i = 0; i < m; i++) { scanf("%d %d %d %d", &u, &v, &w, &c); a[u][v] = a[v][u] = w; b[u][v] = b[v][u] = c; } folyd(); printf("%d %d\n", a[s][d], b[s][d]); } return 0;}void folyd(){ int k, i, j; for(k = 0; k < n; k++) { for(i = 0; i < n; i++) { for(j = 0; j < n; j++) { if(i != j) { if(a[i][j]>a[i][k] +a[k][j]) { a[i][j] = a[i][k] + a[k][j]; b[i][j] = b[i][k] + b[k][j]; } if(a[i][j] == a[i][k]+ a[k][j]) { if(b[i][j]>b[i][k]+b[k][j]) { b[i][j]=b[i][k]+b[k][j]; } } } } } }}
阅读全文
0 0
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- JAVA基础:构造方法、静态变量
- 类型转换
- SQL——Mysql数据库介绍
- 后端_第十课_用AJAX与网页交互
- 20171207一元二次方程
- 数据结构实验之图论七:驴友计划
- HashMap和Hashtable的区别
- 11.数据结构(4)
- Android图片解析
- SQL 经典五十道题
- Oracle数据库初学者
- ConcurrentHashMap源码解析
- 多线程2_补充_小记
- bootstrap