POJ 3790 最短路径问题(Dijkstra变形——最短路径双重最小权值)
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=3790
(1<n<=1000, 0<m<100000, s != t)
1 2 5 6
2 3 4 5
1 3
0 0
- #include<stdio.h>
- int e1[][],e2[][];
- int inf=,n,m,s,t;
- void Dijkstra();
- int main()
- {
- int i,j,t1,t2,t3,t4;
- while(scanf("%d%d",&n,&m), n+m != )
- {
- for(i=;i<=n;i++)//全部初始化为inf
- for(j=;j<=n;j++)
- e1[i][j]=e2[i][j]=inf;//i和j
- for(i=;i<=m;i++)
- {
- scanf("%d%d%d%d",&t1,&t2,&t3,&t4);
- if(e1[t1][t2] > t3)//存储的时候就去重,先保证路径最短,否则如
- //果相等且花费变小则更新花费
- {
- e1[t1][t2]=e1[t2][t1]=t3;//双向
- e2[t1][t2]=e2[t2][t1]=t4;
- }
- else if(e1[t1][t2] == t3 && e2[t1][t2] > t4)
- e2[t1][t2]=e2[t2][t1]=t4;
- }
- scanf("%d%d",&s,&t);
- Dijkstra();
- }
- return ;
- }
- void Dijkstra()
- {
- int i,j,u,v,min,d[],c[],book[];
- for(i=;i<=n;i++)
- {
- d[i]=e1[s][i];
- c[i]=e2[s][i];
- }
- for(i=;i<=n;i++)
- book[i]=;//初始化为0
- book[s]=;
- for(i=;i<=n-;i++)
- {
- min=inf;
- for(j=;j<=n;j++)
- {//找到距离s点最近的尚未访问的点
- if(!book[j] && d[j] < min)
- {
- min=d[j];
- u=j;
- }
- }
- book[u]=;
- for(v=;v<=n;v++)//遍历每个顶点
- {
- if(!book[v] && e1[u][v] < inf)
- {//加入点U后,更新每个顶点到s的距离为最近,便于下次查找
- if(d[v] > d[u]+e1[u][v])
- {//和之前的去重一样,在保证最短路径且花费减少时 才更新最小花费
- d[v]=d[u]+e1[u][v];
- c[v]=c[u]+e2[u][v];
- }
- else if(d[v] == d[u]+e1[u][v] && c[v] > c[u]+e2[u][v])
- c[v] = c[u]+e2[u][v];
- }
- }
- }
- printf("%d %d\n",d[t],c[t]);
- }
POJ 3790 最短路径问题(Dijkstra变形——最短路径双重最小权值)的更多相关文章
- POJ 2253 Frogger(Dijkstra变形——最短路径最大权值)
题目链接: http://poj.org/problem?id=2253 Description Freddy Frog is sitting on a stone in the middle of ...
- POJ 1797 Heavy Transportation(Dijkstra变形——最长路径最小权值)
题目链接: http://poj.org/problem?id=1797 Background Hugo Heavy is happy. After the breakdown of the Carg ...
- POJ.1797 Heavy Transportation (Dijkstra变形)
POJ.1797 Heavy Transportation (Dijkstra变形) 题意分析 给出n个点,m条边的城市网络,其中 x y d 代表由x到y(或由y到x)的公路所能承受的最大重量为d, ...
- POJ 3565 Ants 【最小权值匹配应用】
传送门:http://poj.org/problem?id=3565 Ants Time Limit: 5000MS Memory Limit: 65536K Total Submissions: ...
- POJ 2195 Going Home 【二分图最小权值匹配】
传送门:http://poj.org/problem?id=2195 Going Home Time Limit: 1000MS Memory Limit: 65536K Total Submis ...
- 【POJ 2400】 Supervisor, Supervisee(KM求最小权匹配)
[POJ 2400] Supervisor, Supervisee(KM求最小权匹配) Supervisor, Supervisee Time Limit: 1000MS Memory Limit ...
- POJ 3255 Roadblocks (Dijkstra求最短路径的变形)(Dijkstra求次短路径)
Roadblocks Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 16425 Accepted: 5797 Descr ...
- NYOJ 1248 海岛争霸(Dijkstra变形——最短路径最大权值)
题目链接: http://acm.nyist.net/JudgeOnline/problem.php?pid=1248 描述 神秘的海洋,惊险的探险之路,打捞海底宝藏,激烈的海战,海盗劫富等等.加勒比 ...
- POJ - 2253 Frogger(Dijkstra变形题)
题意: 题目撰写者的英语真是艰难晦涩,看了别人题解,才知道这题题意. 两个forger 一个froger 要蹦到另外一个froger处,他们的最短距离是这样定义的 : The frog distanc ...
随机推荐
- LVS-DR集群搭建
安装LVS 下载源码包,安装时需要根据自己的内核,下载 ipvsadm-1.26.tar.gz的源码包,在进行编译安装以后,我们需要检查必需包是否安装: 1.对内核文件做链接 # uname -r 2 ...
- Java NIO (五) 管道 (Pipe)
Java NIO 管道是2个线程之间的单向数据连接.Pipe有一个source通道和一个sink通道.数据会被写到sink通道,从source通道读取. 如下图: 向管道写数据: 从管道读数据: 1. ...
- 解决 mysql 中文乱码
mysql版本:5.6.38 虽然创建实例时选择的是utf-8的utf8_general_ci,但是用其他程序保存中文时依旧出现乱码的情况. 记录一种可行的解决方案,即修改数据库的字符集. 由于该环境 ...
- 响应式布局—设备像素密度测试 (-webkit-min-device-pixel-ratio)
最近遇到这种头疼的问题,百思不得其解,不耻下问,悬梁刺股这些事情都做过之后,终于看到希望,于是攒见好就收,感觉整理分享给大家,希望有所帮助. 对手机分辨率和网页像素的初步认识是,是2倍的差别. 但 ...
- Lambda 表达式,Java中应用Lambda 表达式
一.Lambda 表达式 简单来说,编程中提到的 lambda 表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数. 链接:知乎 先举一个普通的 Python 例 ...
- JS中闭包、函数与对象的介绍和用法
闭包 闭包概念:当一个内部函数被调用,就会形成闭包,闭包就是能够读取其他函数内部变量的函数,定义在一个函数内部的函,创建一个闭包环境,让返回的这个子程序抓住i,以便在后续执行时可以保持对这个i的引用. ...
- 又趟一个坑,IO卡信号DI和DO的信号类型
工控IO卡可以感应到各种电信号,传感器的状态变化. DI信号包括数字开关信号(ture,false\0,1),光信号的变化(上升沿,下降沿). DO信号包括脉宽和数字开关信号(ture,false\0 ...
- linux下一键安装redis并设置为后台进程及开机启动
1.下载适合你的版本的redis(下载页面https://redis.io/download),我下载的是4.0.6版本 wget http://download.redis.io/releases/ ...
- SSM框架开发web项目系列(六) SpringMVC入门
前言 我们最初的javaSE部分学习后,基本算是入门了,也熟悉了Java的语法和一些常用API,然后再深入到数据库操作.WEB程序开发,渐渐会接触到JDBC.Servlet/Jsp之类的知识,期间可能 ...
- ML笔记_机器学习基石01
1 定义 机器学习 (Machine Learning):improving some performance measure with experience computed from data ...