题目背景

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:

#include<cstdio>
const int inf=0x3f3f3f3f;
int n,m,cnt,sum;
int vis[1005],head[1005],mincost[1005],mst[1005];struct edg{int to,next,time;
}edge[200010];void add(int x,int y,int t){edge[++cnt].next=head[x];edge[cnt].to=y;edge[cnt].time=t;head[x]=cnt;
}void prim(int x){if(cnt==n-1) return ;cnt++;for(int i=head[x];i;i=edge[i].next)if(!vis[edge[i].to]&&edge[i].time<mincost[edge[i].to])mst[edge[i].to]=x,mincost[edge[i].to]=edge[i].time;int minn=inf,minst;for(int i=1;i<=n;i++)if(mst[i]&&minn>mincost[i])minn=mincost[i],minst=i;if(sum<minn) sum=minn;vis[minst]=1,mst[minst]=0;prim(minst);
}int main(){scanf("%d %d",&n,&m);for(int i=1;i<=m;i++){int a,b,c;scanf("%d %d %d",&a,&b,&c);add(a,b,c);add(b,a,c);}for(int i=1;i<=n;i++) mst[i]=inf;for(int i=1;i<=n;i++) mincost[i]=inf;cnt=0,vis[1]=1;prim(1);for(int i=1;i<=n;i++) if(!vis[i]){printf("-1");return 0;}printf("%d",sum);return 0;
}

转载于:https://www.cnblogs.com/Menteur-Hxy/p/9248029.html

P1111 修复公路 (prim)相关推荐

  1. P1111 修复公路P1195 口袋的天空

    目录 P1111 修复公路 P1195 口袋的天空 P1111 修复公路 题目链接:https://www.luogu.com.cn/problem/P1111 标签:并查集,最小生成树 思路:本题用 ...

  2. 洛谷 P1111 修复公路(最小生成树)

    嗯... 题目链接:https://www.luogu.org/problemnew/show/P1111 这道题的关键是读懂题: 首先根据题中的一些扎眼的字眼我们可以判断这是一道用最小生成树来做的题 ...

  3. P1111 修复公路(并查集)

    https://www.luogu.org/problem/P1111 题目背景 AA地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车.政府派人修复这些公路. 题目描述 给出A地区的村庄数NN ...

  4. P1111 修复公路

    题目背景 A地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车. 政府派人修复这些公路. 题目描述 给出A地区的村庄数N,和公路数M,公路是双向的. 并告诉你每条公路的连着哪两个村庄,并告诉你什 ...

  5. 【洛谷】P1111 修复公路

    题目背景 A地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车.政府派人修复这些公路. 题目描述 给出A地区的村庄数N,和公路数M,公路是双向的.并告诉你每条公路的连着哪两个村庄,并告诉你什么时 ...

  6. [LUOGU] P1111 修复公路

    题目背景A地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车.政府派人修复这些公路.题目描述给出A地区的村庄数N,和公路数M,公路是双向的.并告诉你每条公路的连着哪两个村庄,并告诉你什么时候能修 ...

  7. 洛谷 - P1111 - 修复公路 - 并查集

    https://www.luogu.org/problemnew/solution/P1111 并查集的水题,水题都错了好多发. 首先并不是有环就退出,而是连通分支为1才退出,每次合并成功连通分支才会 ...

  8. 【题解】luogu p1111 修复公路

    并查集 总结: 1.并查集板子掌握不熟练 #include<bits/stdc++.h> using namespace std; int n, m, fa[1005], t, sum[1 ...

  9. 【Luogu1111】修复公路(MST模板)

    problem n个村庄,m条公路,建设每条公路需要时间t 求多少时间后任意村庄通车 solution 最小生成树模板 注意特判,无法连通输出-1 codes #include<iostream ...

最新文章

  1. Spring学习笔记十七---事务的转播行为
  2. RHEL7配置本地yum源
  3. 餐厅管理程序c语言源代码,课内资源 - 基于C++的餐厅管理程序的设计与实现
  4. linux开启telnet服务
  5. 专家系统出现的计算机应用阶段,接本第一二章历年考题08-12
  6. php本地的调试安装,教你本地安装、运行、调试PHP程序
  7. 荣耀智慧屏功能曝光 首发华为鸿蒙OS,荣耀智慧屏功能曝光:首发华为鸿蒙OS,全场景智慧体验...
  8. linux中改变文件大小,Linux 改变文件大小的方法
  9. sizeof与strlen使用中的问题
  10. c语言闰年的判断条件DS1302,DS1302驱动程序(平年和闰年天数自动调整)
  11. [10] ADB 修改设置
  12. pc显示器分辨率 前端_2020电竞显示器推荐
  13. 4.设计模式---单例模式(上)
  14. iPhone 12蓝色版疑似翻车:眼前的蓝不是蓝......
  15. vb.net label 不要自动换行_自动驾驶小车——(四)数据采集
  16. java8新特性——Optional (1)
  17. java 遍历json串_Java遍历Json数据
  18. 计算机考研各省份学校,想考研究生,哪个省份的高校更容易考上?
  19. 资深程序员和你重学五线谱 - 第一篇
  20. 【C++】std::numeric_limits 类型对应最值查询

热门文章

  1. 首个AI国际标准有望明年出台,创新工场等多家国内公司已参与
  2. DLA实现跨地域、跨实例的多AnalyticDB读写访问
  3. python django bootstrap_导入 201901
  4. 【js】鼠标跟随效果
  5. OSCache-JSP页面缓存(2)
  6. 我的第一个python 代码
  7. Unable to execute dex: Multiple dex files define Lcom
  8. android 将IE设为默认打开的浏览器
  9. FreeType(字体渲染引擎):支持多种字体格式(TTF,TTC等)
  10. WebKit Frame对象分析