数据结构实验之图论七:驴友计划
来源:互联网 发布:种子软件哪个好 编辑:程序博客网 时间:2024/06/07 23:40
数据结构实验之图论七:驴友计划
Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic
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
弗洛伊德算法用来求任意两点间的最短路径问题,其实也就是多源最短路径问题,就是在求i j节点间最短加入第三个节点k,看从i到k再到j是否比直接从i到j路径短如果短的话就更新ij直接路径权值,从i到j只经过前k节点的最短路径
#include<bits/stdc++.h>using namespace std;#define inf 0x3f3f3fint gra[600][600];int v[600][600];int n,m,s,d;void bfs(){ int i,k,j; for(k=0; k<n; k++) { for(i=0; i<n; i++) { for(j=0; j<n; j++) { if(i!=j) {if(gra[i][k]>gra[i][j]+gra[j][k]) { gra[i][k]=gra[i][j]+gra[j][k]; v[i][k]=v[i][j]+v[j][k]; } else if(gra[i][k]==gra[i][j]+gra[j][k]) { if(v[i][k]>v[i][j]+v[j][k]) { v[i][k]=v[i][j]+v[j][k]; } }} } } } cout<<gra[s][d]<<" "<<v[s][d]<<endl;}int main(){ int i,j; int t; cin>>t; while(t--) { cin>>n>>m>>s>>d; for(i=0; i<n; i++) { for(j=0; j<n; j++) { if(i==j) { gra[i][j]=v[i][j]=0; } else { gra[i][j]=v[i][j]=inf; } } } for(i=0; i<m; i++) { int u,c,a,b; cin>>u>>c>>a>>b; gra[u][c]=gra[c][u]=a; v[u][c]=v[c][u]=b; } bfs(); } return 0;}
阅读全文
0 0
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- HihoCoder
- 导航栏渐变方案收录二
- 如何快速获得自己的所有csdn博客地址
- LeetCode174. Dungeon Game
- Python 快速入门资料
- 数据结构实验之图论七:驴友计划
- MVP+Fresco+OKhttp+Retrofit+Recycleview
- 进程控制编程
- 【Scikit-Learn 中文文档】机器学习: scikit-learn 中的设置以及预估对象
- Linux系统服务——cifs文件系统
- javascript函数的特殊对象this
- Java学习笔记2——Arrays类
- 程序员到高级程序员的10步!
- bzoj1003