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

#include<iostream>
#include<algorithm>
using namespace std; const int maxn = 1e4 + ;
int n, m, s, t, st[maxn << ], en[maxn << ], val[maxn << ];
int l = maxn, r, ans, mid, fa[maxn];
//并查集
int getfa(int x){
if (fa[x] == x)return x;
return fa[x] = getfa(fa[x]);
}
//并查集判断
bool find(int x, int y){
return getfa(x) == getfa(y);
}
//并查集合并
void H_(int x, int y){
if (!find(x, y))fa[getfa(x)] = fa[getfa(y)];
}
bool check(int x){
for (int i = ; i <= n; ++i)fa[i] = i;
for (int i = ; i <= m;++i)
if (val[i] <= x)H_(st[i], en[i]);
return find(s, t);
} void half(){
while (l <= r){
mid = (l + r) >> ;
if (check(mid)){ ans = mid; r = mid - ; }
else l = mid + ;
}
} int main(){
cin >> n >> m >> s >> t;
for (int i = ; i <= m; ++i)
{
cin >> st[i] >> en[i] >> val[i];
l = min(l, val[i]); r = max(r, val[i]);
}
half(); //二分
cout << ans << endl;
}

最新文章

  1. iOS开发 - OC - 实现本地数据存储的几种方式二(直接使用sqlite)
  2. Linq使用Group By 1
  3. [iOS翻译]《iOS7 by Tutorials》系列:iOS7的设计精髓(上)
  4. Android开发之模拟器的选择
  5. Topcoder Srm627 DIV 2
  6. NOI 2015 T1 等式
  7. 二分法查找(Binary Search)
  8. magento xml配置详解
  9. linux下挂载NTFS分区错误修复
  10. hihoCoder 1257 Snake Carpet(很简单的构造方法)
  11. ubuntu下python flask环境搭建
  12. 微信网页授权封装接口——node.js版
  13. Linux系统管理命令(1)accton的使用
  14. Unity自动切割动画
  15. synchronized关键字用法
  16. Java的背景、影响及前景
  17. QTP_随机生成N个字符(包含数字和字母)
  18. Android-认识Service
  19. Android实践项目汇报-改(一)
  20. Cache写机制:Write-through与Write-back

热门文章

  1. 12 Linux Which Command, Whatis Command, Whereis Command Examples
  2. redux 入门
  3. 掌握PHP垃圾回收机制
  4. JavaScript中的let和const
  5. 2019-01-13 [日常]mov文件转换为gif
  6. Android Studio NDK JNI动态注册本地方法
  7. C程序
  8. JAVA设计模式——代理(动态代理)
  9. 从面向服务架构(SOA)学习:微服务时代应该借鉴的5条经验教训
  10. python 数据驱动ddt使用,需要调用下面的代码,请挨个方法调试,把不用的注释掉