sdutoj 3363 数据结构实验之图论七:驴友计划 (暴力深搜最短路)
来源:互联网 发布:淘宝护肤品店铺推荐 编辑:程序博客网 时间:2024/05/16 09:58
题目链接:点击打开链接
题目大意:
做为一个资深驴友,小新有一张珍藏的自驾游线路图,图上详细的标注了全国各个城市之间的高速公路距离和公路收费情况,现在请你编写一个程序,找出一条出发地到目的地之间的最短路径,如果有多条路径最短,则输出过路费最少的一条路径。
输入
连续T组数据输入,每组输入数据的第一行给出四个正整数N,M,s,d,其中N(2 <= N <= 500)是城市数目,城市编号从0~N-1,M是城市间高速公路的条数,s是出发地的城市编号,d是目的地的城市编号;随后M行,每行给出一条高速公路的信息,表示城市1、城市2、高速公路长度、收费额,中间以空格间隔,数字均为整数且不超过500,输入数据均保证有解。
输出
在同一行中输出路径长度和收费总额,数据间用空格间隔。
///数据结构实验之图论七:驴友计划///思路:用深搜求最短路+最小花费#include <iostream>#include<cstdio>#include<cstdlib>#include<cstring>#define inf 0x3f3f3f3fusing namespace std;struct node{ int a,b;} q[501];int mn[501][501];int pq[501][501];int vis[501];int mp[501][501];int sum,num;int ans,ant;int n;void f(int s,int d){ /*sum+=q[s].l; num+=q[s].p;*/ if(s==d) { if(sum<ans) { ans=sum; ant=num; } else if(sum==ans) { if(num<ant) { ant=num; } } sum=0;num=0; return ; } for(int i=0; i<n; i++) { if(mp[s][i]==1&&vis[i]==0) { sum+=mn[s][i]; num+=pq[s][i]; vis[i]=1; f(i,d); vis[i]=0; } }}int main(){ int m,s,d; int t; cin>>t; while(t--) { memset(mp,0,sizeof(mp)); cin>>n>>m>>s>>d; int l,p; for(int i=0; i<m; i++) { cin>>q[i].a>>q[i].b>>l>>p; mp[q[i].a][q[i].b]=1; mp[q[i].b][q[i].a]=1; mn[q[i].a][q[i].b]=l; mn[q[i].b][q[i].a]=l; pq[q[i].a][q[i].b]=p; pq[q[i].b][q[i].a]=p; } ans=inf; ant=inf; memset(vis,0,sizeof(vis)); sum=num=0; vis[s]=1; f(s,d); printf("%d %d\n",ans,ant); } return 0;}
0 0
- sdutoj 3363 数据结构实验之图论七:驴友计划 (暴力深搜最短路)
- sdutoj 3363 数据结构实验之图论七:驴友计划
- SDUTOJ-3363 数据结构实验之图论七:驴友计划(Floyd)
- sdutoj3363 数据结构实验之图论七:驴友计划 (暴力最短路+限制条件)
- SDUT 3363 数据结构实验之图论七:驴友计划(最短路)
- SDUT 3363-数据结构实验之图论七:驴友计划(最短路_dijkstra)
- 数据结构实验之图论七:驴友计划 最短路中最小花费
- sdut oj3363 数据结构实验之图论七:驴友计划(最短路)
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- 数据结构实验之图论七:驴友计划
- MSSQL之一 数据库系统简介 与SQL Server 2008概述
- 装饰者模式
- 有没有一种让人欲罢不能的学习方法?
- hdu 1548 A strange lift(BFS)
- 工作日志——k8s job
- sdutoj 3363 数据结构实验之图论七:驴友计划 (暴力深搜最短路)
- 使用 根据语言环境不同 而显示不同的 资源本地化 ASP.NET 网页
- 证监会助范爷成最牛空头,套现10亿做空千亿市场!
- LeapMotion SDK 开发之一 编写第一个LeapMotion VC++ 程序
- Android开发实践:如何设置NDK的编译选项
- iOS基础开发UI界面-xib基本使用
- Git命令进行GitHub的交互
- centos系统下浏览器能打开网页但命令行无法ping通外网的解决办法
- MySQL常见问题总结分析