find the most comfortable road
XX星有许多城市,城市之间通过一种奇怪的高速公路SARS(Super Air Roam Structure---超级空中漫游结构)进行交流,每条SARS都对行驶在上面的Flycar限制了固定的Speed,同时XX星人对 Flycar的“舒适度”有特殊要求,即乘坐过程中最高速度与最低速度的差越小乘坐越舒服 ,(理解为SARS的限速要求,flycar必须瞬间提速/降速,痛苦呀 ),
但XX星人对时间却没那么多要求。要你找出一条城市间的最舒适的路径。(SARS是双向的)。
Input
输入包括多个测试实例,每个实例包括:
第一行有2个正整数n (1<n<=200)和m (m<=1000),表示有N个城市和M条SARS。
接下来的行是三个正整数StartCity,EndCity,speed,表示从表面上看StartCity到EndCity,限速为speedSARS。speed<=1000000
然后是一个正整数Q(Q<11),表示寻路的个数。
接下来Q行每行有2个正整数Start,End, 表示寻路的起终点。
Output
每个寻路要求打印一行,仅输出一个非负整数表示最佳路线的舒适度最高速与最低速的差。如果起点和终点不能到达,那么输出-1。
Sample Input
4 4 1 2 2 2 3 4 1 4 1 3 4 2 2 1 3 1 2
Sample Output
1 0
主要运用了并查集,和贪心,先把所有公路的速度,由小到大排序,然后一条一条的取,最后所有公路差的最小值就是结果。
C++版本一
#include <iostream>
#include <stdio.h>
#include <algorithm>
using namespace std;
const int INF=(0x7f7f7f7f7f);
const int N=1000+10;
int m,n,q,pre[N];
struct node{int f,t,l;node (){};node (int a ,int b ,int c){f=a;t=b;l=c;}bool operator <(const node &S)const{return l<S.l;}}e[N];
int find(int x){int r=x;while(pre[r]!=r)r=pre[r];return r;
}int main()
{while(scanf("%d%d",&n,&m)!=EOF){int a,b,c;for(int i=1;i<=m;i++){scanf("%d%d%d",&a,&b,&c);e[i]=node(a,b,c);}scanf("%d",&q);sort(e+1,e+m+1);while(q--){int sp,ep;scanf("%d%d",&sp,&ep);int min1 = INF;for (int i=1; i<=m; i++) //枚举{for (int j=1; j<=n; j++)pre[j] = j;for (int j=i; j<=m; j++){int fx = find(e[j].f);int fy = find(e[j].t);if (fx != fy)pre[fx] = fy;if (find(sp) == find(ep)){min1 = min(min1, e[j].l - e[i].l);break;}}}if (min1 == INF) puts("-1");else printf("%d\n", min1);}}//cout << "Hello world!" << endl;return 0;
}
find the most comfortable road相关推荐
- hdu 1598 find the most comfortable road (并查集+枚举)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1598 find the most comfortable road Time Limit: 1000/ ...
- HDU1598 find the most comfortable road【枚举+并查集+最大生成树】
find the most comfortable road Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (J ...
- HDOJ 1598 find the most comfortable road(并查集+贪心)
find the most comfortable road Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
- ACM--steps--dyx--5.1.4--find the most comfortable road
find the most comfortable road Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (J ...
- 图论500题 ---- (枚举+并查集)求图上路径权值差值最小 HDU find the most comfortable road
题目链接 解题思路: 对于两个点的路径假设我们把边按照边权进行排序那么,再把边依次加入图中判断两点的联通性,那么这个边就是两个点联通的最小的最大值,但是最大的最小值怎么找? 因为我们是把边权按照从小到 ...
- hdu 1598 find the most comfortable road
题意:给出一幅无向图,每次询问给出起点和终点,求起点到终点权值差最小的一条路,输出权值差: 思路:边按权值排序,利用并查集枚举每次能使起点终点联通的情况下权值差,并每次更新最小值: #include& ...
- Find the most comfortable road(HDU-1598)
Problem Description XX星有许多城市,城市之间通过一种奇怪的高速公路SARS(Super Air Roam Structure---超级空中漫游结构)进行交流,每条SARS都对行驶 ...
- 【HDOJ图论题集】【转】
1 =============================以下是最小生成树+并查集====================================== 2 [HDU] 3 1213 How ...
- 一系列图论问题[转]
=============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many ...
最新文章
- Android string.xml 通配符 %$用法
- 【Java基础】异常处理与输入输出流
- php ob静态缓存
- SAP CRM BSP URL 302 redirect
- 【阿里妈妈数据科学系列】第五篇:实验指标设定方法与指标体系构建
- 酒店管理与计算机技术结合,(定稿)某酒店内部管理系统的开发与应用(完整版)...
- vmware虚拟机安装win7_图文分享虚拟机怎么安装win7系统
- CSS 文字垂直居中自适应 - 代码篇
- Golang笔记—面向对象编程
- “宇宙最强”GPU —— NVIDIA Tesla V100 面向开发者开放试用!
- frok的一个Demo测试素数
- c语言 16进制编辑器,十六进制编辑器(010 Editor 32位)
- bat 注释,echo off 和 rem 和 :
- PPT 去除排练计时
- python中分号中没内容_被“嫌弃”的分号的一生:不要在Python中使用无用分号了...
- 计算机公式除以键是,excel函数的除法公式(整数及余数)《计算机除法函数公式》...
- list集合练习----斗地主
- MySQL-查看数据库
- 微软语音识别引擎Speech
- java代码获取本周的开始日期和结束日期,并动态获取前几周的或者后几周的开始日期和结束日期。
热门文章
- html社交模板,Olympus – 社交网HTML静态模板
- 开源版本_开源版本PowerShell Core 6.2 发布
- this.$modal.confirm 自定义按钮关闭_Excel迫使人类基因重命名?用VBA给科学家们支一招!—— 怎样快速定制工具栏按钮...
- Myeclipse创建Maven项目提示:Creating maven-archetype-webapp has encountered a problem. 解决方法
- c vs java_c++ vs java---之一
- 五十九、如何求N个数的最大公约数和最小公倍数
- 四十五、深入Java的网络编程(上篇)
- 数据分析案例(贷款风险预测)
- matlab摄像头录像保存在哪里,matlab连接摄像头读取视频部分解释
- 从4篇顶会论文看Self-training最新研究进展