数据结构实验之图论七:驴友计划(Dijkstra)
来源:互联网 发布:跨境电商大数据平台 编辑:程序博客网 时间:2024/06/06 12:51
数据结构实验之图论七:驴友计划
Time Limit: 1000MS Memory Limit: 65536KB
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
sky
#include <bits/stdc++.h>#define inf 0x3f3f3f3fusing namespace std;int n, m, s, d, i, j, k;int dis[505], mon[505], book[505];int maps[505][505][2];void dil();int main(){ int t, x1, x2, x3, x4; scanf("%d", &t); while(t--) { scanf("%d %d %d %d", &n, &m, &d, &s); for(i = 1; i <= n; i++) { for(j = 1; j <= n; j++) { maps[i][j][1] = maps[i][j][0] = inf; } maps[i][i][0] = maps[i][j][1] = 0; } for(i = 1; i <= m; i++) { scanf("%d %d %d %d", &x1, &x2, &x3, &x4); maps[x1][x2][0] = maps[x2][x1][0] = x3; maps[x1][x2][1] = maps[x2][x1][1] = x4; } for(i = 1; i <= n; i++) { dis[i] = maps[d][i][0]; mon[i] = maps[d][i][1]; book[i] = 0; } book[d] = 1; dil(); printf("%d %d\n", dis[s], mon[s]); } return 0;}void dil(){ int mins, u, v; for(i = 1; i < n; i++) { mins = inf; for(j = 1; j <= n; j++) { if(book[j] == 0 && dis[j] < mins) { mins = dis[j]; u = j; } } book[u] = 1; for(v = 1; v <= n; v++) { if(maps[u][v][0] < inf) { if(dis[v] > dis[u] + maps[u][v][0]) { dis[v] = dis[u] + maps[u][v][0]; mon[v] = mon[u] + maps[u][v][1]; } else if(dis[v] == dis[u] + maps[u][v][0] && mon[v] > mon[u] + maps[u][v][1]) mon[v] = mon[u] + maps[u][v][1]; } } }}
阅读全文
0 0
- 数据结构实验之图论七:驴友计划(Dijkstra)
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- memset和循环的比较
- phpcms v9站群跨站点、多站点推荐位调用功能
- iOS自定义的PickView
- Flash终于走向死亡 数十年兴衰之路你知多少
- sublime text软件的安装及配置
- 数据结构实验之图论七:驴友计划(Dijkstra)
- vue按需加载组件-webpack require.ensure
- js随笔
- 剑指offer:矩形覆盖
- MySQL数据库安装与配置详解
- scikit-learn功能大全
- 小程序推荐网址
- iOS tableview的第二页数据刷新特定某个cell数据的解决办法
- HTML常用标签