HDU 1598 find the most comfortable road (暴力+kruskal)
来源:互联网 发布:linux显示文件内容命令 编辑:程序博客网 时间:2024/06/05 15:40
Description
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
//#define Night_13#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int INF = 0x3f3f3f3f;int n, m, root[201];class road {public: int s, e, spd; friend bool operator < (road a, road b) { return a.spd < b.spd; }} r[1100];void Init() { for (int i = 0; i < 201; ++i) { root[i] = i; }}int Find(int x) { int fx = x; while (root[fx] != fx) { fx = root[fx]; } int i = x, j; while (root[i] != fx) { j = root[i]; root[i] = fx; i = j; } return fx;}void Union(int a, int b) { int fa = Find(a), fb = Find(b); if (fa != fb) { root[fb] = fa; }}int main() {#ifdef Night_13 freopen("input.txt", "r", stdin);#endif while (scanf("%d%d%*c", &n, &m) != EOF) { for (int i = 0; i < m; ++i) { scanf("%d%d%d", &r[i].s, &r[i].e, &r[i].spd); } sort(r, r + m); int cases; scanf("%d", &cases); while (cases--) { int a, b, ans = INF; scanf("%d%d", &a, &b); for (int i = 0; i < m; ++i) { Init(); for (int j = i; j < m; ++j) { Union(r[j].s, r[j].e); if (Find(a) == Find(b)) { ans = min(ans, r[j].spd - r[i].spd); break; } } } if (ans == INF) printf("-1\n"); else printf("%d\n", ans); } } return 0;}
0 0
- HDU 1598 find the most comfortable road (暴力+kruskal)
- HDU-1598-find the most comfortable road(暴力枚举+Kruskal最小生成树)
- HDU 1598 find the most comfortable road (枚举+Kruskal)
- HDU 1598 find the most comfortable road 枚举 + kruskal算法
- HDU 1598 find the most comfortable road (枚举+Kruskal)
- HDU 1598 find the most comfortable road (Kruskal + 枚举)
- HDU 1598 find the most comfortable road 【枚举+(并查集)最小生成树Kruskal】
- find the most comfortable road hdu 1598
- HDU-1598-find the most comfortable road
- hdu 1598 find the most comfortable road
- hdu 1598 find the most comfortable road
- HDU 1598 find the most comfortable road
- HDU 1598 find the most comfortable road
- hdu 1598 find the most comfortable road
- HDU 1598 find the most comfortable road
- hdu 1598 find the most comfortable road
- HDU 1598 find the most comfortable road
- hdu 1598 find the most comfortable road
- mongodb常用命令
- Web项目中引入maven依赖管理
- 适配ios9遇到的坑
- 试试54款开源服务器软件
- shell 练习002 (20160228)
- HDU 1598 find the most comfortable road (暴力+kruskal)
- hdu1022
- Java中比较常用的两种数据转化
- BS一机双屏的解决方案
- 1004_线性表操作
- vs错误提示:调运的目标异常,此实现不是 Windows 平台 FIPS 验证的加密算法的一部分
- 九度题目1431:Sort
- 51nod 1055最长等差数列 dp
- Android系统Bluetooh移植简要说明