题目描述

输入输出格式

输入格式:

在实际评测时,将只会有m-1行公路

输出格式:

输入输出样例

输入样例#1:

4 2 5
1 2 6 5
1 3 3 1
2 3 9 4
2 4 6 1
3 4 4 2
输出样例#1:

4
2 1
3 2
5 1
输入样例#2:

4 1 5
1 2 6 5
1 3 3 1
2 3 9 4
2 4 6 1
3 4 4 3
输出样例#2:

3
2 1
4 2
5 2

坑到炸的一句话、。。

二分+kruskal

屠龙宝刀点击就送

#include <algorithm>
#include <cstdio>
#define N 20005 using namespace std;
struct Edge
{
int x,y,z,id;
bool operator<(Edge a)const
{
return z<a.z;
}
}e1[N],e2[N];
struct node
{
int a,b;
bool operator<(node x)const
{
return a<x.a;
}
}ans[N];
int n,k,m,siz,fa[N];
int find_(int x) {return x==fa[x]?x:fa[x]=find_(fa[x]);}
bool check(int x)
{
for(int i=;i<=n;++i) fa[i]=i;
int num=;
for(int i=;i<=m;++i)
{
if(e1[i].z>x) continue;
int fx=find_(e1[i].x),fy=find_(e1[i].y);
if(fx!=fy)
{
num++;
fa[fy]=fx;
}
}
if(num<k) return false;
for(int i=;i<=m;++i)
{
if(e2[i].z>x) continue;
int fx=find_(e2[i].x),fy=find_(e2[i].y);
if(fx!=fy)
{
fa[fy]=fx;
num++;
}
}
if(num==n-) return true;
return false;
}
void get(int x)
{
for(int i=;i<=n;++i) fa[i]=i;
for(int i=;i<=m;++i)
{
if(e1[i].z>x) continue;
int fx=find_(e1[i].x),fy=find_(e1[i].y);
if(fx!=fy)
{
siz++;
fa[fy]=fx;
ans[siz].a=e1[i].id;
ans[siz].b=;
}
}
for(int i=;i<=m;++i)
{
if(e2[i].z>x) continue;
int fx=find_(e2[i].x),fy=find_(e2[i].y);
if(fx!=fy)
{
siz++;
fa[fy]=fx;
ans[siz].a=e2[i].id;
ans[siz].b=;
}
}
}
int main(int argc,char *argv[])
{
scanf("%d%d%d",&n,&k,&m);
int l=,r=,anss;
for(int u,v,w1,w2,i=;i<=m;++i)
{
scanf("%d%d%d%d",&u,&v,&w1,&w2);
e1[i]=(Edge){u,v,w1,i};
e2[i]=(Edge){u,v,w2,i};
r=max(r,w1);
}
sort(e1+,e1+m);
sort(e2+,e2+m);
for(int mid;l<=r;)
{
mid=(l+r)>>;
if(check(mid))
anss=mid,r=mid-;
else l=mid+;
}
printf("%d\n",anss);
get(anss);
sort(ans+,ans++siz);
for(int i=;i<=siz;++i) printf("%d %d\n",ans[i].a,ans[i].b);
return ;
}

洛谷 P2323 [HNOI2006]公路修建问题的更多相关文章

  1. 洛谷 P2323 [HNOI2006]公路修建问题 解题报告

    P2323 [HNOI2006]公路修建问题 题目描述 输入输出格式 输入格式: 在实际评测时,将只会有m-1行公路 输出格式: 思路: 二分答案 然后把每条能加的大边都加上,然后加小边 但在洛谷的题 ...

  2. 洛谷P2323 [HNOI2006] 公路修建问题 [二分答案,生成树]

    题目传送门 公路修建问题 题目描述 OI island是一个非常漂亮的岛屿,自开发以来,到这儿来旅游的人很多.然而,由于该岛屿刚刚开发不久,所以那里的交通情况还是很糟糕.所以,OIER Associa ...

  3. 1196/P2323: [HNOI2006]公路修建问题

    1196: [HNOI2006]公路修建问题 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2191  Solved: 1258 Descriptio ...

  4. 【洛谷P1265】公路修建

    公路修建 题目链接 分析题意,可以发现,在(1)的条件下,(2)的情况是不会发生的, 于是直接求MST(Min Set Tree) 然而稠密图克鲁斯卡尔会TLE,建图还会爆空间, 所以用prime,用 ...

  5. P2323 [HNOI2006]公路修建问题

    题目描述 输入输出格式 输入格式: 在实际评测时,将只会有m-1行公路 输出格式: 输入输出样例 输入样例#1: 4 2 5 1 2 6 5 1 3 3 1 2 3 9 4 2 4 6 1 输出样例# ...

  6. 【MST】P2323 [HNOI2006]公路修建问题

    Description 给定 \(n\) 个点 \(m - 1\) 条无向边,每条边有两种边权,贵一点的和便宜一点的.要求至少选择 \(k\) 条贵边使得图联通且花费最大的边权值最小. Input 第 ...

  7. 【最小生成树】BZOJ 1196: [HNOI2006]公路修建问题

    1196: [HNOI2006]公路修建问题 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1435  Solved: 810[Submit][Sta ...

  8. bzoj 1196: [HNOI2006]公路修建问题 二分+并查集

    题目链接 1196: [HNOI2006]公路修建问题 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1576  Solved: 909[Submit ...

  9. BZOJ 1196: [HNOI2006]公路修建问题( MST )

    水题... 容易发现花费最大最小即是求 MST 将每条边拆成一级 , 二级两条 , 然后跑 MST . 跑 MST 时 , 要先加 k 条一级road , 保证满足题意 , 然后再跑普通的 MST . ...

随机推荐

  1. Ubuntu&nbsp;12.04搭建hadoop单机版环境

    前言: 本文章是转载的,自己又加上了一些自己的笔记整理的 详细地址请查看Ubuntu 12.04搭建hadoop单机版环境 Hadoop的三种运行模式 独立模式:无需任何守护进程,所有程序都在单个JV ...

  2. uva 12452 Plants vs. Zombies HD SP (树DP)

    Problem I: Plants vs. Zombies HD Super Pro Plants versus Zombies HD Super Pro is a game played not a ...

  3. 分类---Logistic Regression

    一 概述 Logistic Regression的三个步骤 现在对为什么不使用均方误差进行分析(步骤二的) 由上图可以看出,当距离目标很远时,均方误差移动速率也很慢,不容易得到好的结果. Discri ...

  4. UOJ #32. 【UR #2】跳蚤公路【Floydbellman-ford】

    首先看这个范围很夸张但是其实有限制的也就在1e18*n范围里(走完一圈的边权),然后限制一定是有负环 用Floyd传递闭包,然后设f[i][j][k]为从1走了i步到j并且有k个x的最短路,用B-F处 ...

  5. Hyperledger Fabric java chaincode 中文乱码问题

    开发java chaincode过程中遇到一个中文乱码的问题.都是官方的demo,请求的sdk是用java写的,部署的chaincode有两种选择(不考虑node),一种go语言写的chaincode ...

  6. 洛谷P2532 [AHOI2012]树屋阶梯(Catalan数)

    P2532 [AHOI2012]树屋阶梯 题目描述 输入输出格式 输入格式: 一个正整数N(1<=N<=500),表示阶梯的高度. 输出格式: 一个正整数,表示搭建方法的个数.(注:搭建方 ...

  7. 前端js模糊搜索(模糊查询)

    1.html结构: <label for="searchShop" class="clear pos-a" style="top:17px;&q ...

  8. Ubuntu16.04.2 LTS 64bit系统装机记录

    系统环境:Win10 + Ubuntu16.04.2 LTS 64bit(双系统)安装教程:Win10和Ubuntu16.04双系统安装详解(简书)以下为系统安装后所要进行的操作. 一.安装显卡驱动 ...

  9. 【poj3764】The xor-longest Path

    The xor-longest Path Description In an edge-weighted tree, the xor-length of a path p is defined as ...

  10. 命令行下载工具 wget

    wget 是一个简单而强大的跨平台命令行下载工具,包括 Windows 也有对应的版本.全称 GNU Wget,属于 GNU 计划的一部分,自由软件.支持 HTTP.HTTPS 和 FTP 协议,可在 ...