P1111 修复公路
题目背景
A地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车。
政府派人修复这些公路。
题目描述
给出A地区的村庄数N,和公路数M,公路是双向的。
并告诉你每条公路的连着哪两个村庄,并告诉你什么时候能修完这条公路。
问最早什么时候任意两个村庄能够通车,即最早什么时候任意两条村庄都存在至少一条修复完成的道路(可以由多条公路连成一条道路)
输入格式
第1行两个正整数N,M
下面M行,每行3个正整数x, y, t,告诉你这条公路连着x,y两个村庄,在时间t时能修复完成这条公路。
输出格式
如果全部公路修复完毕仍然存在两个村庄无法通车,则输出−1,否则输出最早什么时候任意两个村庄能够通车。
输入输出样例
输入 #1
4 4
1 2 6
1 3 4
1 4 5
4 2 3
输出 #1
5
说明/提示
N≤1000,M≤100000
x≤N,y≤N,t≤100000
Code
/*^....0^ .1 ^1^.. 011.^ 1.0^ 1 ^ ^0.11 ^ ^..^0. ^ 0^.0 1 .^.1 ^0 .........001^.1 1. .111100....01^00 11^ ^1. .1^1.^ ^0 0^.^ ^0..1.1 1..^1 .0 ^ ^00. ^^0.^^ 0 ^^110.^0 0 ^ ^^^10.01^^ 10 1 1 ^^^1110.101 10 1.1 ^^^1111110010 01 ^^ ^^^1111^1.^ ^^^10 10^ 0^ 1 ^^111^^^0.1^ 1....^11 0 ^^11^^^ 0.. ....1^ ^ ^1. 0^ ^11^^^ ^ 1 111^ ^ 0.10 00 11 ^^^^^ 1 0 1.0^ ^0 ^0 ^^^^ 0 0.0^ 1.0 .^ ^^^^ 1 1 .0^.^ ^^ 0^ ^1 ^^^^ 0. ^.11 ^ 11 1. ^^^ ^ ^ ..^^..^ ^1 ^.^ ^^^ .0 ^.00..^ ^0 01 ^^^ .. 0..^1 .. .1 ^.^ ^^^ 1 ^ ^0001^ 1. 00 0. ^^^ ^.0 ^.1. 0^. ^.^ ^.^ ^^^ ..0.01 .^^. .^ 1001 ^^ ^^^ . 1^. ^ ^. 11 0. 1 ^ ^^ 0.0 ^. 0 ^0 1 ^^^ 0.0.^ 1. 0^ 0 .1 ^^^ ...1 1. 00 . .1 ^^^ ..1 1. ^. 0 .^ ^^ ..0. 1. .^ . 0 ..1 1. 01 . . ^ 0^.^ 00 ^0 1. ^ 1 1.0 00 . ^^^^^^ ..^ 00 01 ..1. 00 10 1 ^^.1 00 ^. ^^^ .1.. 00 .1 1..01 ..1.1 00 1. ..^ 10^ 1^ 00 ^.1 0 1 1.1 00 00 ^ 1 ^. 00 ^.^ 10^ ^^1.1 00 00 10^..^ 1. ^. 1.0 1 ^. 00 00 .^^ ^. ^ 1 00 ^0000^ ^ 011 0 ^. 00.0^ ^00000 1.00.1 11. 1 0 1^^0.01 ^^^ 01.^ ^ 1 1^^ ^.^1 1 0... 1 ^1 1^ ^ .01 ^ 1.. 1.1 ^0.0^ 0 1..01^^100000..0^1 1 ^ 1 ^^1111^ ^^0 ^ ^ 1 1000^.1 ^.^ . 00.. 1.1 0. 01. . 1. .^1. 1 1. ^0^ . ^.1 00 01^.0 001. .^*/
// train —— 1111.cpp created by VB_KoKing on 2019-08-15.
/* Procedural objectives:Variables required by the program:Procedural thinking:Functions required by the program:Determination algorithm:Determining data structure:*/
/* My dear Max said:
"I like you,
So the first bunch of sunshine I saw in the morning is you,
The first gentle breeze that passed through my ear is you,
The first star I see is also you.
The world I see is all your shadow."FIGHTING FOR OUR FUTURE!!!
*/#include <cstdio>
#include <algorithm>using namespace std;struct Road{int x, y, t;
}roads[100007];
int villages[100007];int find(int x){int res = x;while (villages[res])res = villages[res];while (x != res){int temp = villages[x];villages[x] = res;x = temp;}return res;
}bool join(int x, int y){int res_x = find(x), res_y = find(y);if (res_x != res_y){villages[res_x] = res_y;return true;}return false;
}bool cmp(const Road &a, const Road &b){return a.t < b.t;
}void solve() {int n, m;scanf("%d %d",&n, &m);for (int i = 0; i < m; i++)scanf("%d %d %d", &roads[i].x, &roads[i].y, &roads[i].t);sort(roads, roads + m, cmp);for (int i = 0; i < m; i++) {n -= join(roads[i].x, roads[i].y);if (n == 1){printf("%d\n",roads[i].t);return;}}if (n > 1) printf("-1\n");
}int main(){solve();return 0;
}
P1111 修复公路相关推荐
- P1111 修复公路P1195 口袋的天空
目录 P1111 修复公路 P1195 口袋的天空 P1111 修复公路 题目链接:https://www.luogu.com.cn/problem/P1111 标签:并查集,最小生成树 思路:本题用 ...
- 洛谷 P1111 修复公路(最小生成树)
嗯... 题目链接:https://www.luogu.org/problemnew/show/P1111 这道题的关键是读懂题: 首先根据题中的一些扎眼的字眼我们可以判断这是一道用最小生成树来做的题 ...
- P1111 修复公路(并查集)
https://www.luogu.org/problem/P1111 题目背景 AA地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车.政府派人修复这些公路. 题目描述 给出A地区的村庄数NN ...
- P1111 修复公路 (prim)
题目背景 A地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车.政府派人修复这些公路. 题目描述 给出A地区的村庄数N,和公路数M,公路是双向的.并告诉你每条公路的连着哪两个村庄,并告诉你什么时 ...
- 【洛谷】P1111 修复公路
题目背景 A地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车.政府派人修复这些公路. 题目描述 给出A地区的村庄数N,和公路数M,公路是双向的.并告诉你每条公路的连着哪两个村庄,并告诉你什么时 ...
- [LUOGU] P1111 修复公路
题目背景A地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车.政府派人修复这些公路.题目描述给出A地区的村庄数N,和公路数M,公路是双向的.并告诉你每条公路的连着哪两个村庄,并告诉你什么时候能修 ...
- 洛谷 - P1111 - 修复公路 - 并查集
https://www.luogu.org/problemnew/solution/P1111 并查集的水题,水题都错了好多发. 首先并不是有环就退出,而是连通分支为1才退出,每次合并成功连通分支才会 ...
- 【题解】luogu p1111 修复公路
并查集 总结: 1.并查集板子掌握不熟练 #include<bits/stdc++.h> using namespace std; int n, m, fa[1005], t, sum[1 ...
- 【Luogu1111】修复公路(MST模板)
problem n个村庄,m条公路,建设每条公路需要时间t 求多少时间后任意村庄通车 solution 最小生成树模板 注意特判,无法连通输出-1 codes #include<iostream ...
最新文章
- matlab plot不均匀间隔,matplotlib如何绘制间隔为2^n的不均匀图形?
- 【Qt】QImage、QPixmap、QBitmap和QPicture
- 打开PDF文件弹出阅读未加标签文档的解决方法
- [凯立德]2014春季版3121J0H+3121D0H
- (52)系统调用阶段测试——基于 SSDT HOOK 的 FindWindowA 监视器
- 大厂测试开发常见面试题收集(python,java,性能等)
- 【会议/期刊】中科院推荐计算机领域人工智能方向会议和期刊列表
- Java 1.1.3 修改字符串、不可变字符串
- 为什么好的程序员会写出糟糕的单元测试?
- Java基础---其他对象
- SqlServer获取当前日期
- Javascript中文乱码Js中文乱码
- alert(isPresented: Binding<Bool>, content: () -> Alert) (SwiftUI 中文文档手册 教程含源码)
- P5208-[WC2019] I 君的商店【交互,二分】
- 24速算c语言实训报告ppt,原创:C语言速算24数据结构课程设计最终版
- 工作的硬实力/软技巧
- 怎样做出完美的高达模型
- 数据标注是什么,如何高效完成数据标注?
- 软件测试大环境求职难,跳槽难?我在大军中异军突起
- windbg的k命令
热门文章
- python_深浅拷贝
- 20155303狄惟佳预备作业三Linux学习笔记
- jQuery自定义漂亮的下拉框插件8种效果演示
- zmq中zmq_poll()函数介绍
- MvvmLight学习心得三
- M2第三天DailyScrum——PM(李忠)
- 堆栈被无意中修改导致程序挂掉
- linux双网卡私网,linux双网卡路由配置私网专线
- php中$_get和$_post如何使用,怎么使用超级全局变量$_POST与$_GET
- linux创建表空间 没有权限,Linux oracle数据库创建表空间、用户并赋予权限