【链接】 我是链接,点我呀:)

【题意】

在这里输入题意

【题解】

二分最后选的边中的最大值是多少。
mid

所有边权小于等于mid的边都可以用了。

那么我们要怎么选择呢?

->优先选择一级的道路。

因为它比较贵一点。

那么找到所有一级道路小于等于mid的路径。

(既然可以连,为什么不连?就算连的是二级道路,它对联通性的贡献也是一样的

(而且二级道路更便宜,所以肯定也可以连

(所以可以这样贪心地连,且不会影响到最后答案

把它们都加进去。

->按照克鲁斯卡尔算法的并查集的方法连(如果已经有链接两个连通块的了就不连这条边

然后看看能不能凑够k条边

如果可以的话。

那么就继续凑2级的道路。

直到凑够n-1条边构成生成树为止。

【代码】

#include <bits/stdc++.h>
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define all(x) x.begin(),x.end()
#define pb push_back
#define lson l,mid,rt<<1
#define rson mid+1,r,rt<<1|1
using namespace std; const double pi = acos(-1);
const int dx[4] = {0,0,1,-1};
const int dy[4] = {1,-1,0,0};
const int M = 2e4;
const int N = 1e4; struct abc{
int x,y,c1,c2;
}a[M+10]; int n,k,m,f[N+10]; int ff(int x){
if (f[x]==x) return x;
else return f[x] = ff(f[x]);
} bool ok(int bound){
rep1(i,1,n) f[i] = i;
int cnt = 0;
rep1(i,1,m){
if (a[i].c1>bound) continue;
int x = ff(a[i].x),y = ff(a[i].y);
if (x!=y){
f[x] = y;
cnt++;
}
}
if (cnt<k) return false; rep1(i,1,m){
if (a[i].c2>bound) continue;
int x = ff(a[i].x),y = ff(a[i].y);
if (x!=y){
f[x] = y;
cnt++;
}
}
if (cnt<n-1) return false;
return true;
} int main(){
#ifdef LOCAL_DEFINE
freopen("rush_in.txt", "r", stdin);
#endif
scanf("%d%d%d",&n,&k,&m);
rep1(i,1,m){
scanf("%d%d%d%d",&a[i].x,&a[i].y,&a[i].c1,&a[i].c2);
}
int l = 1,r = 3e4,temp = -1;
while (l <= r){
int mid = (l+r)>>1;
if (ok(mid )){
temp = mid;
r = mid-1;
}else l = mid+1;
}
printf("%d\n",temp);
return 0;
}

最新文章

  1. Topcoder SRM 683 Div2 B
  2. html5的触摸事件
  3. matlab练习程序(图像球面化)
  4. 一些简单css3效果的整理
  5. MyQL修改用户名命令、密码
  6. (六)学习CSS之color属性
  7. Qt知识点、疑难杂症的治疗
  8. S3C2440的GPIO
  9. openstack、kvm CentOS升级内核
  10. Mysql自动填充测试数据
  11. c# 实体类生成工具
  12. class_copyIvarList方法获取实例变量问题引发的思考
  13. bilibili用户信息全栈爬取
  14. 一小时学会 C# 6.0
  15. 利用SSH反向隧道,连接内网服务器
  16. iOS学习笔记之Reachability简单使用
  17. linux配置hadoop集群
  18. vim中代码自动格式化
  19. haproxy 配置https 同时技持443 80端口
  20. CS231n学习笔记-图像分类笔记(下篇)

热门文章

  1. php的更新
  2. vi 编辑器的日常使用
  3. SparkSql初级编程实践
  4. thinkPHP利用ajax异步上传图片并显示、删除
  5. Vue引用第三方datepicker插件无法监听datepicker输入框的值
  6. Django REST Framework 序列化和校验 知识点
  7. js 如何判断浏览器是否禁用cookie
  8. HDU3001 Traveling (状压dp+三进制+Tsp问题总结)
  9. C# 实现窗口程序winform像QQ一样靠近桌面边缘自动隐藏窗口
  10. Css学习总结(2)——60个有用CSS代码片段