https://www.luogu.org/problemnew/solution/P1111

并查集的水题,水题都错了好多发。

首先并不是有环就退出,而是连通分支为1才退出,每次合并成功连通分支才会减1

还有一个bug就是假如没有到达连通分支为1,不应该输出maxt而是要输出-1。所以应该是在cnt==1的情况再更新maxt并break才对。

#include<bits/stdc++.h>
using namespace std;
#define ll long long int n,m;
struct edge{
int x,y,t;
bool operator<(edge that){
return t<that.t;
}
}e[]; int p[];
int _rank[];
struct union_find_set{
void init(){
for(int i=;i<=;i++){
p[i]=i;
_rank[i]=;
}
} int _find(int x){
if(p[x]!=x)
return p[x]=_find(p[x]);
else
return x;
}
bool union_set(int x,int y){
int fx=_find(x);
int fy=_find(y);
if(fx==fy){
return false;
}
else{
if(_rank[fx]<=_rank[fy]){
if(_rank[fx]==_rank[fy])
_rank[fy]++;
p[fx]=fy;
}
else{
p[fy]=fx;
}
return true;
}
}
}; int main(){
scanf("%d%d",&n,&m);
for(int i=;i<m;i++){
scanf("%d%d%d",&e[i].x,&e[i].y,&e[i].t);
} sort(e,e+m); union_find_set s;
s.init(); int maxt=-;
int cnt=n;
for(int i=;i<m;i++){
if(s.union_set(e[i].x,e[i].y)==false){
maxt=e[i].t;
}
else{
maxt=e[i].t;
cnt--;
if(cnt==)
break;
}
} /*if(maxt==-1){
maxt=e[m-1].t;
for(int i=1;i<=n;i++){
s._find(i);
}
for(int i=2;i<=n;i++){
if(p[i]!=p[i-1]){
maxt=-1;
break;
}
}
}*/ if(cnt!=)
maxt=-; printf("%d\n",maxt);
}

.

洛谷 - P1111 - 修复公路 - 并查集的更多相关文章

  1. 洛谷 P1111 修复公路——并查集

    先上一波链接qwq https://www.luogu.org/problem/P1111 这题就是裸的并查集咯qwq 维护一下连通块的数目 数目变为一的时候整个图就连通了 输出此时的答案就okay拉 ...

  2. 洛谷P1111修复公路并查集改

    看了他们的题解感觉很震惊,为什么要用kruskal,这题要用到最小生成树吗??? 38行短短的程序就可以了,我觉得学习不是一种套用,套自己学的,而且题解很大一部分都是kruskal. 个人认为自己的程 ...

  3. 洛谷 P1111 修复公路 Label:并查集

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

  4. 洛谷P1111 修复公路

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

  5. 洛谷——P1111修复公路(并查集)

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

  6. 洛谷 P1111 修复公路

    题目链接 https://www.luogu.org/problemnew/show/P1111 以后只发题目链接!!! 题目大意 给出A地区的村庄数N,和公路数M,公路是双向的.并告诉你每条公路的连 ...

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

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

  8. bzoj3673 & bzoj3674 & 洛谷P3402 可持久化并查集

    题目:bzoj3673:https://www.lydsy.com/JudgeOnline/problem.php?id=3673 bzoj3674:https://www.lydsy.com/Jud ...

  9. 洛谷 3295 [SCOI2016]萌萌哒——并查集优化连边

    题目:https://www.luogu.org/problemnew/show/P3295 当要连的边形如 “一段区间内都是 i 向 i+L 连边” 的时候,用并查集优化连边. 在连边的时候,如果要 ...

随机推荐

  1. linux批量解压和批量压缩

    ls *.tar.gz | xargs -n1 tar xzvf //批量解压 ls | awk '{ print "tar zcvf "$0".tar.gz " ...

  2. 怎样高速地安装Ubuntu SDK

    我在先前的文章"Ubuntu SDK 安装"中已经具体地介绍了怎样安装Ubuntu SDK.可是非常多的开发人员可能在最后安装SDK所须要的chroots时候会失败.这里面的原因是SDK在安装chro ...

  3. linux shell操作

    ---------------------------------------------------- 原文:http://unix.stackexchange.com/questions/2863 ...

  4. 经典游戏“大富翁4”存档文件修改器Rich4Editor下载

    下载地址: http://files.cnblogs.com/files/xiandedanteng/Rich4Editor20170614.zip http://files.cnblogs.com/ ...

  5. Here is the reason why Fengguang turns from ipmitool to freeipmi

    http://ipmitool.sourceforge.net/ Last updated Thu Apr 26 09:08:52 PDT 2007 Revision 1.21 · Home· Dow ...

  6. LeetCode_3Sum Closest

    一.题目 3Sum Closest Total Accepted: 32191 Total Submissions: 119262My Submissions Given an array S of  ...

  7. GIF Movie Gear逆向实战+注册代码+补丁

    GIF Movie Gear逆向实战+注册代码+补丁 准备 我是在windows 8.1 x64上进行的操作.有不足之处,还望大虾指出. 获取资源 网站下载:http://www.gamani.com ...

  8. 解决编译twrp3.0.3遇到的问题

    1. 问题: ninja: error: '/home/jessie/OMNI/out/target/product/m1/obj/SHARED_LIBRARIES/libcryptfs_hw_int ...

  9. Sharepoint2013 列表的NewForm 页面加入一个 保存新建 button

    昨天一同事问我怎样在sharepoint2013的NewForm.aspx页面上加入一个 save and new的button.实现save 和new的功能.save的功能和默认的save按钮效果一 ...

  10. Java程序员从笨鸟到菜鸟之(十五)Html基础积累总结(下)

     本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.net/csh624366188 一:表格 1.表格的基本语法 <table>...</table> ...