hdu 1598 find the most comfortable road 枚举+最小成生树 kruskal 解题报告
但XX星人对时间却没那么多要求。要你找出一条城市间的最舒适的路径。(SARS是双向的)。
第一行有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, 表示寻路的起终点。
思路:把路径按照从小到大排序, 然后从小到大依次枚举“最小速度”, 再寻找目标起点到目标终点的路径中的“最大速度”,为了使得它们的差更小,就要使得“最大速度”尽量的小。
代码:
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;const int maxn = 220;
const int maxm = 1100;struct node
{int x, y, v;bool operator < (const node &s) const{return v < s.v;}
} w[maxm];int f[maxn];int find(int x)
{return x == f[x] ? x : f[x]=find(f[x]);
}int main()
{int n, m, q, a, b, ans;while(scanf("%d%d", &n, &m) != EOF){for(int i = 0; i < m; i++)scanf("%d%d%d", &w[i].x, &w[i].y, &w[i].v);sort(w, w + m);scanf("%d", &q);while(q--){ans = -1;scanf("%d%d", &a, &b);for(int i = 0; i < m; i++){for(int j = 0; j <= n; j++)f[j] = j;for(int j = i; j < m; j++){int fx = find(w[j].x);int fy = find(w[j].y);if(fx != fy)f[fx]=fy;if(find(a) == find(b)){if(ans == -1 || ans > w[j].v - w[i].v)ans = w[j].v - w[i].v;break;}}}printf("%d\n", ans);}}return 0;
}
hdu 1598 find the most comfortable road 枚举+最小成生树 kruskal 解题报告相关推荐
- hdu 1598 find the most comfortable road (并查集+枚举)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1598 find the most comfortable road Time Limit: 1000/ ...
- hdu 1598 find the most comfortable road
题意:给出一幅无向图,每次询问给出起点和终点,求起点到终点权值差最小的一条路,输出权值差: 思路:边按权值排序,利用并查集枚举每次能使起点终点联通的情况下权值差,并每次更新最小值: #include& ...
- HDOJ 1598 find the most comfortable road(并查集+贪心)
find the most comfortable road Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
- HDU1598 find the most comfortable road【枚举+并查集+最大生成树】
find the most comfortable road Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (J ...
- 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 ...
- hdu 1598(最小生成树变形)
解题思路:这道题我一开始的思路是动规,dp_max[i][j]表示i-j的最大边,dp_min[i][j]表示i-j的最小边,可是这样会有问题,有可能最大边与最小边不在同一条路径上,这样就很麻烦了. ...
- POJ 3522 Slim Span (Kruskal枚举最小边)
题意: 求出最小生成树中最大边与最小边差距的最小值. 分析: 排序,枚举最小边, 用最小边构造最小生成树, 没法构造了就退出 1 #include <stdio.h> 2 #include ...
- hdu 2049 不容易系列之(4)——考新郎 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2049 写这篇解题报告时 我真的很气愤 对自己又一次犯下低级错误改了两个小时 int型的数据居然用%I6 ...
- 【HDU - 3746 】Cyclic Nacklace (KMP,最小循环节问题)
题干: CC always becomes very depressed at the end of this month, he has checked his credit card yester ...
- c# 编程入门第六课常量,枚举,枚举转换成其他类型变量(枚举和int,转 string字符串转枚举),结构体,数组,冒泡排序,实际使用排序,方法(函数)
c# 编程入门第六课 文章目录 c# 编程入门第六课 1. 常量 2. 枚举 3. 枚举转换成其他类型变量 3.1 枚举和int 3.2 转string 3.2 字符串转枚举 4.结构体 5.数组 7 ...
最新文章
- laravel的redis配置,一直报错Class 'Predis\Client' not found
- .NET Core+MySql+Nginx 容器化部署
- 没写client,想先测试server端怎么办?
- [Unity] Canvas 设置为 Screen Space - Camera 时,UI 被场景物体遮挡的解决办法:设置 Canvas 的 Plane Distance 为一个较小的数
- (day 52 - 二叉搜索树) 剑指 Offer 68 - I. 二叉搜索树的最近公共祖先
- django复习笔记2:models
- postman接口测试七
- 工程伦理思考题汇总——张永强主编
- Layered Architecture 分层架构(完整翻译)
- python暴力解压rar压缩包
- 平均值,标准差,方差,协方差,期望,均方误差
- abb机器人常见维故障现象
- MAC | svn: E175002: DAV request failed: 411 Content length required.
- 如何创建一个uniapp项目,如何运行手机上,打包等,更换头部,底部图标等。一目了然,
- 全网最全docker初级入门!!!
- Tacotron以及Tacotron2详解
- 把PotPlayer设为默认视频播放器
- 原创:用python把链接指向的网页直接生成图片的http服务及网站(含源码及思想)...
- 卷积神经网络---卷积层、激励层、池化层以及全连接层
- 关于开发中遇到的一些问题记录