P1111 修复公路 (并查集,排序)
洛谷链接:https://www.luogu.com.cn/problem/P1111
P1111 修复公路
题目背景
A 地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车。政府派人修复这些公路。
题目描述
给出 A 地区的村庄数 \(N\),和公路数 \(M\),公路是双向的。并告诉你每条公路的连着哪两个村庄,并告诉你什么时候能修完这条公路。问最早什么时候任意两个村庄能够通车,即最早什么时候任意两条村庄都存在至少一条修复完成的道路(可以由多条公路连成一条道路)。
输入格式
第 \(1\) 行两个正整数 \(N,M\)。
下面 \(M\) 行,每行 \(3\) 个正整数 \(x,y,t\),告诉你这条公路连着 \(x,y\) 两个村庄,在时间 \(t\) 时能修复完成这条公路。
输出格式
如果全部公路修复完毕仍然存在两个村庄无法通车,则输出 \(-1\),否则输出最早什么时候任意两个村庄能够通车。
输入输出样例 #1
输入 #1
4 4
1 2 6
1 3 4
1 4 5
4 2 3
输出 #1
5
说明/提示
\(1\leq x, y\leq N \le 10 ^ 3\),\(1\leq M, t \le 10 ^ 5\)。
思路
先对所有的公路按照时间从小到大排序,接下来依次连接,如果连接的公路顶点相同则跳过,每次连接更新ans
,对所有的公路进行操作过依次后,检查一遍所有村庄节点,如果存在村庄的顶点不同,则说明所有公路的公路相连,无法将所有的村庄连接起来
题解
#include <bits/stdc++.h>
using namespace std;
const int N=1e5+10;
typedef long long ll;
int n,m;
int ans = 0;
struct way
{
int st,to,t;
}w[N];
int father[N];
bool cmp(way a,way b)
{
return a.t<b.t;
}
void init() {
for (int i = 1; i <= n; ++i) {
father[i] = i;
}
}
int find(int u) {
return u == father[u] ? u : father[u]=find(father[u]);
}
bool isSame(int u, int v) {
u = find(u);
v = find(v);
return u == v;
}
void join(int u, int v) {
u = find(u);
v = find(v);
if (u == v) return ;
father[v] = u;
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n>>m;
for(int i=0;i<m;i++)cin>>w[i].st>>w[i].to>>w[i].t;
sort(w,w+m,cmp);
init();
// for(int i=0;i<m;i++)cout<<w[i].t<<endl;
for(int i=0;i<m;i++)
{
if(isSame(w[i].st,w[i].to)==0)
{
join(w[i].st,w[i].to);
ans = max(ans,w[i].t);
}
}
for(int i=2;i<=n;i++)
{
if(isSame(1,i)==0)
{
cout<<-1<<endl;
return 0;
}
}
cout<<ans<<endl;
return 0;
}
P1111 修复公路 (并查集,排序)的更多相关文章
- 洛谷P1111修复公路并查集改
看了他们的题解感觉很震惊,为什么要用kruskal,这题要用到最小生成树吗??? 38行短短的程序就可以了,我觉得学习不是一种套用,套自己学的,而且题解很大一部分都是kruskal. 个人认为自己的程 ...
- 洛谷 - P1111 - 修复公路 - 并查集
https://www.luogu.org/problemnew/solution/P1111 并查集的水题,水题都错了好多发. 首先并不是有环就退出,而是连通分支为1才退出,每次合并成功连通分支才会 ...
- 洛谷 P1111 修复公路——并查集
先上一波链接qwq https://www.luogu.org/problem/P1111 这题就是裸的并查集咯qwq 维护一下连通块的数目 数目变为一的时候整个图就连通了 输出此时的答案就okay拉 ...
- P1111 修复公路
P1111 修复公路 550通过 1.6K提交 题目提供者该用户不存在 标签并查集 难度普及/提高- 提交该题 讨论 题解 记录 题目背景 A地区在地震过后,连接所有村庄的公路都造成了损坏而无法通 ...
- SPOJ:Lexicographically Smallest(并查集&排序)
Taplu and Abhishar loved playing scrabble. One day they thought of inventing a new game using alphab ...
- 洛谷 P1111 修复公路 Label:并查集
题目背景 A地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车.政府派人修复这些公路. 题目描述 给出A地区的村庄数N,和公路数M,公路是双向的.并告诉你每条公路的连着哪两个村庄,并告诉你什么时 ...
- (最小生成树 并查集)P1111 修复公路 洛谷
题目背景 A地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车.政府派人修复这些公路. 题目描述 给出A地区的村庄数N,和公路数M,公路是双向的.并告诉你每条公路的连着哪两个村庄,并告诉你什么时 ...
- 洛谷P1111 修复公路
题目背景 A地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车.政府派人修复这些公路. 题目描述 给出A地区的村庄数N,和公路数M,公路是双向的.并告诉你每条公路的连着哪两个村庄,并告诉你什么时 ...
- FZU 2059 MM (并查集+排序插入)
Problem 2059 MM Accept: 109 Submit: 484Time Limit: 1000 mSec Memory Limit : 32768 KB Problem ...
- 洛谷——P1111修复公路(并查集)
题目背景 AA地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车.政府派人修复这些公路. 题目描述 给出A地区的村庄数NN,和公路数MM,公路是双向的.并告诉你每条公路的连着哪两个村庄,并告诉你 ...
随机推荐
- B1021 个位数统计
描述 输入格式: 每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N. 输出格式: 对 N 中每一种不同的个位数字,以 D:M 的格式在一行中输出该位数字 D 及其在 N 中出现的次 ...
- React-Native开发鸿蒙NEXT-权限处理
.markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...
- 集合操作交并补的三种Java实现
基本概念 为了便于理解,下面首先介绍集合的三个基本操作:并集.交集和补集. 并集:以属于A或属于B的元素为元素的集合称为A与B的并(集),记作A∪B(或B∪A),读作"A并B" ...
- .tar.gz 软件压缩包打包 AppImage 指南
要想打包 AppImage 分3步走 生成 AppDir 拷贝资源及依赖文件 生成 AppImage 准备工作 下载打包工具 linuxdeploy appimagetool 下载/解压 好要打包的程 ...
- java后端http大文件传输接口笔记
笔记 接口方 package com.chinaums.demo.example.controller; import org.springframework.web.bind.annotation. ...
- 杂七杂八系列----C#代码如何影响CPU缓存速度?
CPU与RAM的隔阂 CPU与RAM是两个独立的硬件,并非集成在一起.所以他们两个之间一定会存在一个连接的桥梁,这个桥梁的名字叫做内存总线. 内存总线由三部分组成: 地址总线(Address Bus) ...
- 图神经网络(GNN)模型的基本原理
一.概述 在人工智能领域,数据的多样性促使研究人员不断探索新的模型与算法.传统的神经网络在处理像图像.文本这类具有固定结构的数据时表现出色,但面对具有不规则拓扑结构的图数据,如社交网络.化学分子结 ...
- python爬虫学习——xlwt库,sqlite库
xlwt库主要是对excel进行操作,主要流程就是创建对象,创建工作表,写入数据,保存数据表.代码练习如下 ''' import xlwt workbook = xlwt.Workbook(encod ...
- JWT令牌如何在FastAPI中实现安全又高效的生成与验证?
title: JWT令牌如何在FastAPI中实现安全又高效的生成与验证? date: 2025/06/10 09:02:35 updated: 2025/06/10 09:02:35 author: ...
- HyperWorks作业递交面板设置
用户可以在 Batch Mesh Tab 中,选取待处理的零部件几何模型(Geometry File),并为每个零部件几何模型调用专属网格方案(Mesh Type). 图 3-43 作业递交面板 Ba ...