sdutoj3363 数据结构实验之图论七:驴友计划 (暴力最短路+限制条件)
来源:互联网 发布:北通 手柄 知乎 编辑:程序博客网 时间:2024/04/30 09:55
数据结构实验之图论七:驴友计划
Time Limit: 1000MS Memory limit: 65536K
题目描述
做为一个资深驴友,小新有一张珍藏的自驾游线路图,图上详细的标注了全国各个城市之间的高速公路距离和公路收费情况,现在请你编写一个程序,找出一条出发地到目的地之间的最短路径,如果有多条路径最短,则输出过路费最少的一条路径。
输入
连续T组数据输入,每组输入数据的第一行给出四个正整数N,M,s,d,其中N(2 <= N <= 500)是城市数目,城市编号从0~N-1,M是城市间高速公路的条数,s是出发地的城市编号,d是目的地的城市编号;随后M行,每行给出一条高速公路的信息,表示城市1、城市2、高速公路长度、收费额,中间以空格间隔,数字均为整数且不超过500,输入数据均保证有解。
输出
在同一行中输出路径长度和收费总额,数据间用空格间隔。
示例输入
14 5 0 30 1 1 201 3 2 300 3 4 100 2 2 202 3 1 20
示例输出
3 40
就是暴力最短路加上了一个限制条件 就是模板啊23333......
///ACcode#include <bits/stdc++.h>using namespace std;const int maxn=501;const int BIG=103456789;int Dis[maxn][maxn]; /// 两点距离int Fee[maxn][maxn]; /// 两点路费void MinRoad(int n){ int i,j,k; for (k=0; k<n; k++) ///0到n暴力三个for 找最小 { for (i=0; i<n; i++) { for (j=0; j<n; j++) { if(Dis[i][j] > Dis[i][k]+Dis[k][j]) /// 更新找最小的 { Dis[i][j] = Dis[i][k]+Dis[k][j]; /**Dis[j][i] = Dis[i][k]+Dis[k][j];*/ Fee[i][j] = Fee[i][k]+Fee[k][j]; /**Fee[j][i] = Fee[i][k]+Fee[k][j];*/ } else if (Dis[i][j] == Dis[i][k]+Dis[k][j]) ///如果相等比较路费fee { if (Fee[i][j] > Fee[i][k]+Fee[k][j]) { Fee[i][j] = Fee[i][k]+Fee[k][j]; /**Fee[j][i] = Fee[i][k]+Fee[k][j];*/ } /**内的语句可以省略 思考为什么 */ } } } }}int main(){ int i,j,n,m,s,d; int city1,city2,dis,fee; ///城市 1 2 距离 费用 int t; cin>>t; while (t--) { cin>>n>>m>>s>>d; for(i=0; i<n; i++) { for (j=0; j<n; j++) { Dis[i][j]=BIG; Fee[i][j]=BIG; } } ///初始化为最大值 表示 "不通" for (i=1; i<=m; i++) { cin>>city1>>city2>>dis>>fee; if (Fee[city1][city2] > fee) /// 防止重边 重边留最小的(fee) { Fee[city1][city2]=fee; Fee[city2][city1]=fee; } if (Dis[city1][city2] > dis) /// 同上 (dis) { Dis[city1][city2]=dis; Dis[city2][city1]=dis; } } MinRoad(n); cout<<Dis[s][d]<<" "<<Fee[s][d]<<endl; /// 最小路径 路费 } return 0;}
1 0
- sdutoj3363 数据结构实验之图论七:驴友计划 (暴力最短路+限制条件)
- sdutoj 3363 数据结构实验之图论七:驴友计划 (暴力深搜最短路)
- SDUT 3363-数据结构实验之图论七:驴友计划(最短路_dijkstra)
- 数据结构实验之图论七:驴友计划 最短路中最小花费
- sdut oj3363 数据结构实验之图论七:驴友计划(最短路)
- SDUT 3363 数据结构实验之图论七:驴友计划(最短路)
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- Runtime的几点用法总结
- [039]文本去重、过滤——文本指纹
- 5. 引用类型学习笔记
- linux定时备份MySQL数据库并删除七天前的备份文件
- sql server 中用 convert 函数转换日期格式
- sdutoj3363 数据结构实验之图论七:驴友计划 (暴力最短路+限制条件)
- 4.Linux系统虚拟机—安装VMware Tools步骤(原创)
- ADB LOGCAT Usage
- android长截屏beta1
- Android进阶之事件拦截处理机制
- 配置Hibernate4,Spring和Hibernate版本兼容问题
- 根据chorme的html记录history提取访问过的主域名
- 实现导航Tab栏悬浮功能之改进版
- kafka系列文章索引