题目地址http://www.luogu.org/problem/show?pid=1396

P1396拯救膜法师(欸??)

题目描述

“咚咚咚……”“查水表!”原来是查水表来了,现在哪里找这么热心上门的查表员啊!小明感动的热泪盈眶,开起了门……

妈妈下班回家,街坊邻居说小明被一群陌生人强行押上了警车!妈妈丰富的经验告诉她小明被带到了t区,而自己在s区。

该市有m条大道连接n个区,一条大道将两个区相连接,每个大道有一个拥挤度。小明的妈妈虽然很着急,但是不愿意拥挤的人潮冲乱了她优雅的步伐。所以请你帮她规划一条从s至t的路线,使得经过道路的拥挤度最大值最小。

输入输出格式

输入格式:

第一行四个数字n,m,s,t。

接下来m行,每行三个数字,分别表示两个区和拥挤度。

(有可能两个区之间有多条大道相连。)

输出格式:

输出题目要求的拥挤度。

输入输出样例

输入样例#1:

3 3 1 3
1 2 2
2 3 1
1 3 3

输出样例#1:

2

说明

数据范围

30% n<=10

60% n<=100

100% n<=10000,m<=2n,拥挤度<=10000

题目保证1<=s,t<=n且s<>t,保证可以从s区出发到t区。

标准并查集,将数据按照拥挤度从小到大排序,每次将当前疲劳值最小的两个区域合并再判断即可。

曾经有个人相信了luogu的标签,于是一直在思考如何在并查集上二分

代码实现

#include<algorithm>//sort
#include<cstdio>
using namespace std;
int m,n,s,t;
int f[20050];
struct Duan2baka{int x,y,k;
}a[20050];
bool cmp(Duan2baka a,Duan2baka b){return a.k<b.k;
}
int find(int k){//并查集,查找是否在统一集合 return f[k]==k?k:f[k]=find(f[k]);
}
inline void csh(){for(int i=1;i<=m;i++)f[i]=i;
}
int main(){scanf("%d%d%d%d",&n,&m,&s,&t);for(int i=1;i<=m;i++){scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].k);}csh();sort(a+1,a+m+1,cmp);//按照拥挤度排序 for(int i=1;i<=m;i++){int fa=find(f[a[i].x]);int fb=find(f[a[i].y]);if(fa!=fb)f[fa]=fb;if(find(f[s])==find(f[t]))//判断是否在一集合内{printf("%d",a[i].k);return 0;}}
return 0;
}

洛谷[P1396]营救 并查集相关推荐

  1. P1396 营救(并查集+二分)

    思路:检验函数中,先初始化每个节点的下标,每调用检验函数就从新使用一次并查集(并查集的时间复杂度非常低),然后,就看当一条路的价值val<=假设最大值x时,就把他们连接起来. #include& ...

  2. 洛谷P4092树——并查集

    题目:https://www.luogu.org/problemnew/show/P4092 利用并查集,倒序离线,那么从倒序来看被撤销标记的点就再也不会被标记,所以用并查集跳过: 莫名其妙的WA,调 ...

  3. 洛谷 P1396 营救

    题目链接 https://www.luogu.org/problemnew/show/P1396 题目描述 "咚咚咚--""查水表!"原来是查水表来了,现在哪里 ...

  4. 洛谷P1396 营救 题解

    题目:https://www.luogu.org/problemnew/show/P1396 分析: 这其实一看就是一个最短路的近似模板的题目,但我们要注意到两个区之间可能会有多条道路,所以说我们只需 ...

  5. 洛谷P1396营救(最小生成树)

    题目描述 "咚咚咚--""查水表!"原来是查水表来了,现在哪里找这么热心上门的查表员啊!小明感动的热泪盈眶,开起了门-- 妈妈下班回家,街坊邻居说小明被一群陌生 ...

  6. 4.11每日一题之亲戚(洛谷c++)|简单并查集

  7. 并查集——营救(洛谷 P1396)

    题目选自洛谷P1396 看到最大的最小很多人想到二分,但是可以有更好的解法. 我们不妨用并查集维护这个图,将边从小到大排序,每次取出边权最小的边,若该边的起点与终点未在一个集合内,就将其合并.当源点与 ...

  8. 营救(洛谷-P1396)

    题目描述 "咚咚咚--""查水表!"原来是查水表来了,现在哪里找这么热心上门的查表员啊!小明感动的热泪盈眶,开起了门-- 妈妈下班回家,街坊邻居说小明被一群陌生 ...

  9. 并查集模板——并查集(洛谷 P3367)

    题目选自洛谷P3367 是并查集的最入门的题目,也是并查集的模板题~~ 如果你还不知道并查集是什么? 请看我的这篇文章 点击链接 题目描述 如题,现在有一个并查集,你需要完成合并和查询操作. 输入格式 ...

最新文章

  1. php union all,Union与Union All的区别
  2. injectionForXcode代码注入步骤
  3. [游戏模版15] Win32 飞机射击
  4. hihoCoder 1578 Visiting Peking University 【贪心】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛)...
  5. 北斗导航 | 现代授时技术——北斗GPS导航系统
  6. 顶会论文轮番炸场,本周哪些论文最值得读?
  7. Python版——博客网站四 编写日志创建页
  8. android activity调用Adapter方法刷新列表UI,RecyclerView.Adapter
  9. 《Deep Learning》—— 数学基础
  10. ASP.NET自定义错误页面,分离配置信息,多环境发布
  11. Lapsus$ 组织攻击很多大厂都在合作的软件咨询公司 Globant
  12. 根据dpr设置html fontsize,如何为不同移动设备设置html不同的font-size?
  13. 黑马程序员---java基础-----------------图形化界面(GUI)
  14. 功能测试Ⅷ——业务流程测试
  15. mysql的脏数据_数据库的脏数据问题
  16. C++中 sprintf函数的用法
  17. 高中计算机考试实施方案,山东省高中信息技术学业水平考试实施方案及思考
  18. 明日之后怎么在电脑上玩 明日之后电脑版图文攻略
  19. Docker Swarm secrets
  20. cubieboard mysql_【Linux】【笔记】Cubieboard开发板Debian系统+SAMBA共享+远程迅雷Xware+Nginx+PH......

热门文章

  1. linux光盘镜像文件
  2. 微信小程序swiper同时显示三张图片样式
  3. 遥感大辞典_《遥感大词典》的诞生侧记——向中国环境遥感学会十周年献礼
  4. Nexus制品库管理:二进制制品管理:清除策略
  5. C++中的随机数函数
  6. loopback 地址
  7. 协程泄漏之gops使用解析
  8. 递归巧解汉诺塔问题(hanoi)
  9. Java八股文面试,为什么会盛行?又该如何面对?
  10. 深入浅出 Python 装饰器:16 步轻松搞定 Python 装饰器