数据结构实验之图论七:驴友计划(弗洛伊德(Floyd)算法求图的最短路径)
https://blog.csdn.net/KO812605128/article/details/98876698 驴友计划(最短路径之Dijkstra算法)
数据结构实验之图论七:驴友计划**(弗洛伊德(Floyd)**
Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description
做为一个资深驴友,小新有一张珍藏的自驾游线路图,图上详细的标注了全国各个城市之间的高速公路距离和公路收费情况,现在请你编写一个程序,找出一条出发地到目的地之间的最短路径,如果有多条路径最短,则输出过路费最少的一条路径。
Input
连续T组数据输入,每组输入数据的第一行给出四个正整数N,M,s,d,其中N(2 <= N <= 500)是城市数目,城市编号从0~N-1,M是城市间高速公路的条数,s是出发地的城市编号,d是目的地的城市编号;随后M行,每行给出一条高速公路的信息,表示城市1、城市2、高速公路长度、收费额,中间以空格间隔,数字均为整数且不超过500,输入数据均保证有解。
Output
在同一行中输出路径长度和收费总额,数据间用空格间隔。
Sample Input
1
4 5 0 3
0 1 1 20
1 3 2 30
0 3 4 10
0 2 2 20
2 3 1 20
Sample Output
3 40
https://www.geek-share.com/detail/2691131842.html
https://www.geek-share.com/detail/2692535170.html
可以理解下算法
#include<bits/stdc++.h> #define INF 0x3f3f3f3f using namespace std; int mmap[555][555]; int money[555][555]; int n, m, v0, vn; void folyd() { for(int k = 0; k < n; k++) { for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { if(i != j) { if(mmap[i][j] > mmap[i][k] + mmap[k][j]) { mmap[i][j] = mmap[i][k] + mmap[k][j]; money[i][j] = money[i][k] + money[k][j]; } if(mmap[i][j] == mmap[i][k] + mmap[k][j]) { if(money[i][j] > money[i][k] + money[k][j]) money[i][j] = money[i][k] + money[k][j]; } } } } } } int main() { int T; cin>>T; while(T--) { cin>>n>>m>>v0>>vn; for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { if(i == j) mmap[i][j] = money[i][j] = 0; else mmap[i][j] = money[i][j] = INF; } } while(m--) { int u, v, s, t; cin>>u>>v>>s>>t; mmap[u][v] = mmap[v][u] = s; money[u][v] = money[v][u] = t; } folyd(); cout<<mmap[v0][vn]<<" "<<money[v0][vn]<<endl; } return 0; }
https://blog.csdn.net/weixin_39956356/article/details/80620667
这个是把路径都输出的
- 数据结构实验之图论七:驴友计划(最短路径之Dijkstra算法+Bellman-Ford算法)
- 数据结构之(图最短路径之)Floyd(弗洛伊德)算法
- [SDUT](3363)数据结构实验之图论七:驴友计划 ---单源最短路径(图)
- 数据结构看书笔记(十)—— 求最短路径问题之--迪杰斯特拉(Dijkstra)算法和弗洛伊德(Floyd)算法
- 数据结构之---C语言实现最短路径之Floyd(弗洛伊德)算法
- 数据结构实验之图论七:驴友计划(Folyd算法详解)
- 数据结构与算法15:单源最短路径弗洛伊德Floyd算法
- 数据结构实验之图论七:驴友计划(Floyd)
- SDUTOJ-3363 数据结构实验之图论七:驴友计划(Floyd)
- Pku acm 1125 Stockbroker Grapevine 数据结构题目解题报告(八)---- 弗洛伊德(floyd)算法
- 43. 数据结构笔记之四十三最短路径之迪杰斯特拉(Dijkstra )算法
- 数据结构实验之图论七:驴友计划
- 最短路径算法—Floyd(弗洛伊德)算法
- SDUTACM 数据结构实验之图论七:驴友计划
- 数据结构之(图最短路径之)Dijkstra(迪杰斯特拉)算法
- sdutoj3363 数据结构实验之图论七:驴友计划 (暴力最短路+限制条件)
- 数据结构与算法问题 单源最短路径 浙大OJ
- SDUT 3363 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 最短路径 - 弗洛伊德(Floyd)算法