[LUOGU] 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<=100000x<=N,y<=N,t<=100000
注意的几个地方
- 无向图
- 两倍数组大小
- 要求的不是边权之和,是最大的一条边
//Writer:GhostCai && His Yellow Duck#include<iostream>
#include<algorithm>
#define MAXN 200005
using namespace std;int m,n;
int ans,links;int fa[MAXN];
int fnd(int x){return (fa[x]==x)?x:fa[x]=fnd(fa[x]);
}
void cat(int x,int y){x=fnd(x);y=fnd(y);if(y!=x) fa[y]=x;
}struct Edge{int from,to,next,w;
}e[MAXN];
int ecnt;
inline void add(int x,int y,int w){e[++ecnt].to = y;e[ecnt].w = w;e[ecnt].from = x;
}bool cmp(Edge x,Edge y){return x.w < y.w ;
}int main(){cin>>n>>m;int x,y,w;for(int i=1;i<=n;i++) fa[i]=i;for(int i=1;i<=m;i++){cin>>x>>y>>w;add(x,y,w);add(y,x,w);}sort(e+1,e+1+ecnt,cmp);for(int i=1;i<=ecnt;i++){x=e[i].from ,y=e[i].to ;x=fnd(x);y=fnd(y);if(x!=y){cat(x,y);
// ans+=e[i].w ;ans=max(ans,e[i].w);//!!links++;}}
// cout<<ans<<endl;if(links!=n-1) cout<<-1<<endl;else cout<<ans<<endl;return 0;
}
转载于:https://www.cnblogs.com/ghostcai/p/9247512.html
[LUOGU] P1111 修复公路相关推荐
- 【题解】luogu p1111 修复公路
并查集 总结: 1.并查集板子掌握不熟练 #include<bits/stdc++.h> using namespace std; int n, m, fa[1005], t, sum[1 ...
- 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 - 修复公路 - 并查集
https://www.luogu.org/problemnew/solution/P1111 并查集的水题,水题都错了好多发. 首先并不是有环就退出,而是连通分支为1才退出,每次合并成功连通分支才会 ...
- P1111 修复公路
题目背景 A地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车. 政府派人修复这些公路. 题目描述 给出A地区的村庄数N,和公路数M,公路是双向的. 并告诉你每条公路的连着哪两个村庄,并告诉你什 ...
- P1111 修复公路 (prim)
题目背景 A地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车.政府派人修复这些公路. 题目描述 给出A地区的村庄数N,和公路数M,公路是双向的.并告诉你每条公路的连着哪两个村庄,并告诉你什么时 ...
- 【洛谷】P1111 修复公路
题目背景 A地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车.政府派人修复这些公路. 题目描述 给出A地区的村庄数N,和公路数M,公路是双向的.并告诉你每条公路的连着哪两个村庄,并告诉你什么时 ...
- [并查集][最小生成树]PJOJ 2560 雀斑连线/luogu 2921 修复公路
题目描述 In an episode of the Dick Van Dyke show, little Richie connects the freckles on his Dad's back ...
最新文章
- 一篇文章带你了解Flannel
- 懂AI值百万年薪?你不知道的开发者薪资榜单大盘点
- 【阿里妈妈营销科学系列】开篇:C.M.O——“人群.渠道.机会”营销分析导论
- EMACS 中文显示为方框
- 【目标检测】IoU、GIoU、DIoU、CIoU Loss详解及代码实现
- 有趣的问题:C的表达式x == x,何时为假?!
- 只包含因子2 3 5的数 (思维和二分)
- 统一项目管理平台(UMPlatForm.NET) - 5.1 数据字典管理模块
- Commons-FileUpload上传组件
- Kotlin学习笔记 —— 函数,字符串,可空性以及标准库函数(2)
- 撰写SCI论文的选题思路与技巧 - 易智编译EaseEditing
- 13、【算法】算法复杂度分析
- vsftpd.conf 配置详解
- 通信类顶级会议及期刊
- 1200PLC和Modbus485主站DCS系统通讯
- css样式表诞生,[css]简明教程 CSS样式表概述
- 史上最大数据泄露:维基解密公布CIA黑客兵工厂
- java判断是否是数组_Java判断对象类型是否为数组
- 【M】⽴项or申报书中的重点难点咋写?
- 【云周刊】第135期:云栖大会珍贵技术资料:20+覆盖容器技术、智能工业、大数据、开源数据库...
热门文章
- 施工工期计算器在线_办公室装修工期要多久时间,办公室快速装修怎么做?
- JavaEE持久层框架对比与hibernate主键生成策略总结
- ubuntu16.04配置opencv2、python2、cuda8.0、cudnn以及caffe
- #ifndef/#define/#endif 防止该头文件被重复引用
- 面试必考题:基本95%的面试都会被问到的?
- 基于k8s的测试执行工具:TestKube
- 压力测试实践一:JMeter + JProfiler 入门
- cd如何省略空格 linux_在 Linux 上调整命令历史 | Linux 中国
- BP神经网络:feedforwardnet版回归预测
- 计算机可以调剂其他专业吗,机械能跨专业调剂计算机吗