hdu 3790 最短路径问题
来源:互联网 发布:java.lang.reflect 编辑:程序博客网 时间:2024/06/05 19:13
最短路径问题
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 10037 Accepted Submission(s): 3064
Problem Description
给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的。
Input
输入n,m,点的编号是1~n,然后是m行,每行4个数 a,b,d,p,表示a和b之间有一条边,且其长度为d,花费为p。最后一行是两个数 s,t;起点s,终点。n和m为0时输入结束。
(1<n<=1000, 0<m<100000, s != t)
(1<n<=1000, 0<m<100000, s != t)
Output
输出 一行有两个数, 最短距离及其花费。
Sample Input
3 21 2 5 62 3 4 51 30 0
Sample Output
9 11
#include"stdio.h"#include"queue"using namespace std;#define N 1005int dis[N][N],v[N][N],mark[N][N];struct node{int id,d,p;friend bool operator<(node a,node b){if(a.d==b.d)return a.p>b.p;return a.d>b.d;}};void Inti(int n,int m){int a,b,d,p;memset(dis,0,sizeof(dis));memset(mark,0,sizeof(mark));while(m--){scanf("%d%d%d%d",&a,&b,&d,&p);if(dis[a][b]>d||dis[a][b]==0){dis[a][b]=dis[b][a]=d;v[a][b]=v[b][a]=p;}else if(dis[a][b]==d) //注意重边{if(v[a][b]>p) //边长相等取花费较少者v[a][b]=v[b][a]=p;}}}void bfs(int n,int s,int t){int i;priority_queue<node>q;node cur,next;cur.id=s;cur.d=0;cur.p=0;q.push(cur);while(!q.empty()){cur=q.top();q.pop();s=cur.id;if(s==t){printf("%d %d\n",cur.d,cur.p);break;}for(i=1;i<=n;i++) //把与当前点相连的点均入队{if(!mark[s][i]&&dis[s][i]) //优化:这样就不会走回头路!!{ //一个点mark[s][i]=mark[i][s]=1;next.id=i;next.d=cur.d+dis[s][i];next.p=cur.p+v[s][i];q.push(next);}}}}int main(){int n,m,s,t;while(scanf("%d%d",&n,&m),n||m){Inti(n,m); //数组初始化及输入功能scanf("%d%d",&s,&t);bfs(n,s,t); }return 0;}
0 0
- 【最短路径-Dis】hdu 3790 最短路径问题
- hdu 3790 最短路径问题
- hdu 3790 最短路径问题
- HDU-3790-最短路径问题
- HDU 3790 最短路径问题
- hdu 3790 最短路径问题
- Hdu 3790 最短路径问题
- HDU 3790 最短路径问题
- HDU 3790 最短路径问题
- hdu 3790 最短路径问题
- hdu 3790 最短路径问题
- 最短路径问题 hdu 3790
- hdu 3790 最短路径问题
- hdu 3790 最短路径问题
- hdu--最短路径问题--3790
- HDU 3790 最短路径问题
- hdu 3790 最短路径问题
- HDU 3790 最短路径问题 (SPFA)
- MyEclipse下修改部署工程名使Tomcat中的名称一致
- 《Maven实战》的读书笔记
- iOS多线程编程之NSThread的使用
- TCP实现P2P通信、TCP穿越NAT的方法、TCP打洞
- 如何应对面试中的手写算法
- hdu 3790 最短路径问题
- Jabberd/XMPP 学习之一:概述
- 求一个矩阵中最大的二维矩阵(元素和最大)
- Coyote for Http11: org.apache.coyote.http11
- 实时系统的软中断和硬中断
- C++临时变量的生命周期
- spi(1) platform_get_resource
- C++中:类数据成员的内存布局
- chukwa安装