#include <iostream>
#include <stdio.h>
#include <string.h>
#include <cstring>
using namespace std; const int INF = ;
const int MAXSIZE = ; int map[MAXSIZE][MAXSIZE];
int price[MAXSIZE][MAXSIZE];
int n; void Dijkstra(int s,int e){
bool done[MAXSIZE];
int dis[MAXSIZE],co[MAXSIZE]; memset(done,,sizeof(done)); for(int i = ;i <= n;i++)
dis[i] = INF;
dis[s] = co[s] = ; for(int i = ;i <= n;i++){//最多执行n+1次操作
int pos,minn = INF;
for(int j = ;j <= n;j++){//先找到d[]最小的点
if(!done[j] && dis[j] < minn){
minn = dis[j];
pos = j;
}
}
done[pos] = ;//将该点加入集合
for(int j = ;j <= n;j++){//再更新所有的d[]
//if(!done[j] && d[minx] + map[minx][j] < d[j])
//d[j] = d[minx] + map[minx][j]; if (!done[j] && map[pos][j] != INF){
//若存在更小的路径,取更小的路径
if (dis[j] > dis[pos] + map[pos][j]){
dis[j] = map[pos][j] + dis[pos];
co[j] = price[pos][j] + co[pos];
}
//当最短路径相等时候,取价格小的
else if (dis[j] == dis[pos] + map[pos][j] && co[j] > co[pos] + price[pos][j])
co[j] = co[pos] + price[pos][j];
}
}
}
printf("%d %d\n",dis[e],co[e]);
} int main(){
int m,s;
int i,j;
int p,q,t,pri;
int ww,ans; while(scanf("%d%d",&n,&m) , n || m){
ans = ;
for(i = ;i < MAXSIZE;i++){
for(j = ;j < MAXSIZE;j++){
if(i == j)
map[i][j] = ;
else
map[i][j] = INF;
}
}
while(m--){
scanf("%d%d%d%d",&p,&q,&t,&pri);
if(t < map[p][q]){//可能两站间存在多条线路取短的那条路
map[p][q] = t;
map[q][p] = t;
price[p][q] = pri;
price[q][p] = pri;
}
}
scanf("%d%d",&ww,&s);
map[][ww] = ;
Dijkstra(,s);//巧妙之处,加入超级源点0
}
return ;
}

HDOJ 3790 双权值Dijkstra的更多相关文章

  1. hdoj--3790--最短路径问题(双权值迪杰斯特拉)

     最短路径问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  2. POJ 3790 最短路径问题(Dijkstra变形——最短路径双重最小权值)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3790 Problem Description 给你n个点,m条无向边,每条边都有长度d和花费p,给你 ...

  3. 51nod1459(带权值的dijkstra)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1459 题意:中文题诶- 思路:带权值的最短路,这道题数据也没 ...

  4. Dijkstra算法为什么权值不能为负

    Dijkstra算法当中将节点分为已求得最短路径的集合(记为S)和未确定最短路径的个集合(记为U),归入S集合的节点的最短路径及其长度不再变更,如果边上的权值允许为负值,那么有可能出现当与S内某点(记 ...

  5. 紧急救援 L2-001 dijkstra 打印路径 最短路条数 权值

    较为复杂的dijkstra 包含路径打印  最小路的条数  最小路径的情况下取最大权值 v0要是标记就会出错...? 有权值的题目  不能设置mp[i][i]为0  否则会无限加权 这题很有参考价值 ...

  6. 非负权值有向图上的单源最短路径算法之Dijkstra算法

    问题的提法是:给定一个没有负权值的有向图和其中一个点src作为源点(source),求从点src到其余个点的最短路径及路径长度.求解该问题的算法一般为Dijkstra算法. 假设图顶点个数为n,则针对 ...

  7. Dijkstra 算法——计算有权最短路径(边有权值)

    [0]README 0.1) 本文总结于 数据结构与算法分析, 源代码均为原创, 旨在理解 Dijkstra 的思想并用源代码加以实现: 0.2)最短路径算法的基础知识,参见 http://blog. ...

  8. hdu Caocao's Bridges(无向图边双连通分量,找出权值最小的桥)

    /* 题意:给出一个无向图,去掉一条权值最小边,使这个无向图不再连同! tm太坑了... 1,如果这个无向图开始就是一个非连通图,直接输出0 2,重边(两个节点存在多条边, 权值不一样) 3,如果找到 ...

  9. POJ 1797 Heavy Transportation(Dijkstra变形——最长路径最小权值)

    题目链接: http://poj.org/problem?id=1797 Background Hugo Heavy is happy. After the breakdown of the Carg ...

随机推荐

  1. input autocomplete 下拉提示+支持中文

    js 代码: $.getJSON("/Foreign/Getforeign_routeEndPoint", function (data) {            $(" ...

  2. 访问Tableau自带的PostgreSQL数据库

    突然发现公司Tableau服务器的数据库大小急剧增加,因此决定直接连上数据库排查.过程记录如下:最后发现有个http_requests 表体积巨大(7G),本来以为是数据缓存什么的.结果是日志问题o( ...

  3. 「OC」内存管理

    一.基本原理 (一)为什么要进行内存管理. 由于移动设备的内存极其有限,所以每个APP所占的内存也是有限制的,当app所占用的内存较多时,系统就会发出内存警告,这时需要回收一些不需要再继续使用的内存空 ...

  4. PHP函数积累

    1.mt_rand(min,max):随机返回min,max之间的随整数机数. 2.date('Y-m-d H:m:s',时间戳),将时间戳格式化为相应的时间格式.time()取得时间戳 3.arra ...

  5. Visual Studio调试技巧 -- Attach to Process #Reprinted#

    from:http://www.cnblogs.com/lyosaki88/p/3481338.html 一般写完代码时,我们通常会启动调试运行一下看看是否正确,启动运行的方式无非是F5-- Star ...

  6. VC6中创建Qt工程的创建

    文章来源:http://blog.sina.com.cn/s/blog_64d015c10100sf1o.html 本文主要介绍怎么创建可以在VC6中编译的QT工程.本文所采用环境为VC++6.0+Q ...

  7. Zend Studio 10.6.0汉化教程(图文)

      来源于:http://www.pw88.com/teach/bangong/32.html 此汉化方法适用于所有的zend studio版本.整个汉化思路是:在线或者离线官方下载汉化包,本地安装即 ...

  8. filter过滤器的使用

    从J2EE1.3开始,Servlet2.3规范中加入了对过滤器的支持.过滤器能够对目标资源的请求和响应进行截取.过滤器的工作方式分为四种,下面让我们分别来看看这四种过滤器的工作方式: 1.reques ...

  9. nginx负载 发向代理配置文件参考

    来自server+iis  linux可做参考 : #user nobody; worker_processes 8; #worker_cpu_affinity 00000001 00000010 0 ...

  10. python——登陆接口设计(循环方法)

    近日重新整理了登陆接口设计程序,感觉以前的代码没有注释,让园子的其他童鞋读起来比较费劲.也没有流程图和程序运行说明. 1.流程图 2.user_file.txt&lock_file.txt文件 ...