BZOJ 1196 二分+Kruskal
思路:
二分答案
判一下能不能加
//By SirisuRen
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int N=40050;
int n,m,k,xx,yy,aa,bb,ans,f[N],top;
struct Node{
int from,to,type,wei;Node(){}
Node(int FR,int TO,int TY,int WE){
from=FR,to=TO,type=TY,wei=WE;
}
}node[N];
bool cmp(Node a,Node b){return a.wei<b.wei;}
int find(int x){return x==f[x]?x:f[x]=find(f[x]);}
bool check(int mid){
int cnt1=0;
for(int i=1;i<=n;i++)f[i]=i;
for(int i=1;i<=mid;i++){
if(node[i].type!=1)continue;
int fx=find(node[i].from),fy=find(node[i].to);
if(fx!=fy)f[fx]=fy,cnt1++;
}
if(cnt1<k)return 0;
for(int i=1;i<=mid;i++){
if(node[i].type==1)continue;
int fx=find(node[i].from),fy=find(node[i].to);
if(fx!=fy)f[fx]=fy,cnt1++;
}return cnt1==n-1;
}
int main(){
scanf("%d%d%d",&n,&k,&m);
for(int i=1;i<m;i++){
scanf("%d%d%d%d",&xx,&yy,&aa,&bb);
node[++top]=Node(xx,yy,1,aa);
node[++top]=Node(xx,yy,2,bb);
}
sort(node+1,node+1+top,cmp);
int l=n-1,r=top;
while(l<=r){
int mid=(l+r)>>1;
if(check(mid))ans=mid,r=mid-1;
else l=mid+1;
}
printf("%d\n",node[ans].wei);
}
BZOJ 1196 二分+Kruskal的更多相关文章
- BZOJ 1196 二分答案+并查集
http://www.lydsy.com/JudgeOnline/problem.php?id=1196 题目大意:n个城市,m-1条路,每条路有一级公路和二级公路之分,你要造n-1条路,一级公路至少 ...
- bzoj 1196 二分+生成树判定
我们先二分一个答案,对于每个答案,先加一级公路,如果不够k直接break, 然后再加二级公路,加的过程类似Kruskal. /************************************* ...
- bzoj 1196 公路修建问题
bzoj 1196: [HNOI2006]公路修建问题 Description OI island是一个非常漂亮的岛屿,自开发以来,到这儿来旅游的人很多.然而,由于该岛屿刚刚开发不久,所以那里的交通情 ...
- bzoj 1196
http://www.lydsy.com/JudgeOnline/problem.php?id=1196 二分+并查集 一共有2*M条路径,我们首先将这2*M条路径按费用排序. 然后二分最大费用的公路 ...
- BZOJ 1196: [HNOI2006]公路修建问题 Kruskal/二分
1196: [HNOI2006]公路修建问题 Time Limit: 1 Sec Memory Limit: 162 MB 题目连接 http://www.lydsy.com/JudgeOnline ...
- BZOJ 1196 [HNOI2006]公路修建问题:二分 + 贪心生成树check(类似kruskal)
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1196 题意: n个城市,m对城市之间可以修公路. 公路有两种,一级公路和二级公路,在第i对 ...
- BZOJ 1196 [HNOI2006]公路修建问题(二分答案+并查集)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1196 [题目大意] 对于每条可能维修的公路可选择修一级公路或者二级公路,价值不同 要求 ...
- bzoj 1196: [HNOI2006]公路修建问题 二分+并查集
题目链接 1196: [HNOI2006]公路修建问题 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1576 Solved: 909[Submit ...
- BZOJ 2654: tree Kruskal+二分答案
2654: tree Time Limit: 30 Sec Memory Limit: 512 MBSubmit: 1863 Solved: 736[Submit][Status][Discuss ...
随机推荐
- I2C controller core之Bit controller(03)
FPGA proven, AISC proven, I2C controller core from OpenCores http://opencores.org/project,i2c Bit-co ...
- ANN:DNN结构演进History—LSTM网络
为了保持文章系列的连贯性,参考这个文章: DNN结构演进History-LSTM_NN 对于LSTM的使用:谷歌语音转录背后的神经网络 摘要: LSTM使用一个控制门控制参数是否进行梯度计算,以此避免 ...
- vue 登录验证码
vue 登录验证码 最近在开发pc端项目,配合elementui使用 createCode() { var code = ""; var codeLength = 4; //验证码 ...
- vue小白学习笔记
<div id="div"> <h2>{{ key }}</h2> </div> new Vue ({ el : "#di ...
- Let's Encrypt,免费好用的 HTTPS 证书
转自: https://imququ.com/post/letsencrypt-certificate.html?hmsr=toutiao.io&utm_medium=toutiao.io ...
- C#第十二节课
数组 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Th ...
- Skyline Web 端数据浏览性能优化
三维数据的效率一直是个瓶颈,特别是在Web端浏览一直是个问题,在IE内存限制1G的条件下,对于三维数据动不动几十G的数据量,这1G显得多么微不足道.虽然现在三维平台都是分级加载,或者在程序中采用数据分 ...
- Idea 方法注释
Idea 方法注释 http://blog.csdn.net/u014044812/article/details/76577479 http://blog.csdn.net/leixingbang1 ...
- Yii2验证码使用教程
控制器代码 public function actions() { return [ 'captcha' => [ 'class' => 'yii\captcha\CaptchaActio ...
- python爬虫06 | 你的第一个爬虫,爬取当当网 Top 500 本五星好评书籍
来啦,老弟 我们已经知道怎么使用 Requests 进行各种请求骚操作 也知道了对服务器返回的数据如何使用 正则表达式 来过滤我们想要的内容 ... 那么接下来 我们就使用 requests 和 re ...