题目描述

输入输出格式

输入格式:

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

输出格式:

输入输出样例

输入样例#1:
复制

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

6
1 1
2 1
4 1


简单的贪心,


#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std; int n, k, m; struct edge
{
int x, y;
int val;
int v1, v2;
int yuan;
}ed[];
int cnt;
int l = , r , mid; void add(int x, int y, int z, int zz, int zzz)
{
cnt++;
ed[cnt].x = x;
ed[cnt].y = y;
ed[cnt].val = min(z, zz);
ed[cnt].v1 = z;// er ji
ed[cnt].v2 = zz; // yi ji
ed[cnt].yuan = zzz;
} int fa[]; int Find(int x)
{
return x == fa[x] ? x : fa[x] = Find(fa[x]);
} bool use[][]; bool cmp1(edge a, edge b)
{
if (a.v2 == b.v2) return a.v1 < b.v1;
return a.v2 < b.v2;
} inline bool cmp2(edge a, edge b)
{
return a.val < b.val;
} int ans = ; int main()
{
cin >> n >> k >> m; for(register int i = ; i < m ; i ++)
{
int x, y, z, zz;
scanf("%d%d%d%d", &x, &y, &z, &zz);
add(x, y, zz, z, i);
r = max(r, max(z, zz));
} int ans = ; sort(ed + , ed + cnt + , cmp1); for (register int i = ; i <= n ; i ++) fa[i] = i; int num = ;
for (register int i = ; i <= cnt ; i ++)
{
if (num == k) break;
int x = ed[i].x, y = ed[i].y;
int fx = Find(x), fy = Find(y);
if (fx == fy) continue;
ans = max(ans, ed[i].v2);
fa[fx] = fy;
num++;
use[ed[i].yuan][] = ;
}
sort(ed + , ed + cnt + , cmp2);
for (int i = ; i <= cnt ; i ++)
{
if (num == n - ) break;
int x = ed[i].x, y = ed[i].y;
int fx = Find(x), fy = Find(y);
if (fx == fy) continue;
if (use[ed[i].yuan][]) continue;
ans = max(ans, ed[i].val);
fa[fx] = fy;
num++;
if (ed[i].val == ed[i].v2) use[ed[i].yuan][] = ;
if (ed[i].val == ed[i].v1) use[ed[i].yuan][] = ;
if (num == n - ) break;
}
cout << ans << endl;
for (int i = ; i <= cnt ; i ++)
{
if (use[i][]) printf("%d %d\n", i, );
else if (use[i][]) printf("%d %d\n", i, );
} return ;
}

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

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

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

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

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

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

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

  4. BZOJ_1196_[HNOI2006]公路修建问题_kruskal+二分答案

    BZOJ_1196_[HNOI2006]公路修建问题_kruskal+二分答案 题意:http://www.lydsy.com/JudgeOnline/problem.php?id=1196 分析: ...

  5. BZOJ 1196: [HNOI2006]公路修建问题 Kruskal/二分

    1196: [HNOI2006]公路修建问题 Time Limit: 1 Sec  Memory Limit: 162 MB 题目连接 http://www.lydsy.com/JudgeOnline ...

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

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

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

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

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

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

  9. BZOJ1196: [HNOI2006]公路修建问题

    Description OI island是一个非常漂亮的岛屿,自开发以来,到这儿来旅游的人很多.然而,由于该岛屿刚刚开发不久,所以那里的交通情况还是很糟糕.所以,OIER Association组织 ...

随机推荐

  1. 在64位Linux上安装32位gmp大数库

    前期准备: 如果没有安装32位gcc和g++环境的话,可能会导致安装失败,此时请参考上一篇博文 http://www.cnblogs.com/weir007/p/5977759.html,根据系统版本 ...

  2. Java相关PDF书籍与教程免费下载

    场景 我的CSDN: https://blog.csdn.net/BADAO_LIUMANG_QIZHI 我的博客园: https://www.cnblogs.com/badaoliumangqizh ...

  3. jmeter性能分析

    1.硬件要求:包括客户端和服务端的cpu,mem,network,disk等,这些硬件设备必须满足性能测试的前提下,才能进行性能测试,否则得到的各项指标不一定是正确的 2.场景分析: 测试前的准备工作 ...

  4. ubuntu16.04查看opencv版本

    查看opencv版本:pkg-config opencv --modversion

  5. NestedInteger Java

    ''' class NestedInteger { private List list; private Integer integer; public NestedInteger(List<N ...

  6. Redis数据库之数据基本管理操作

    了解并掌握各种数据类型的命令操作方式,以及各种数据类型值的操作方式.同时,熟练记忆列表.哈希.集合和有序集合等数据类型的常用操作命令.能根据指令格式完成相应的指令操作. ①string数据类型的练习 ...

  7. layui table 行按钮事件,启用禁用切换

    {{# ){ }} <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="forbidden& ...

  8. Ubuntu 查看操作系统的位数

    查看Ubuntu操作系统的位数是32位还是64位,可以通过以下命令来查看: getconf LONG_BIT 返回32或64 :如图

  9. 非对称加密openssl协议在php7实践

    据网上资料,RSA加密算法是一种非对称加密算法.在公开密钥加密和电子商务中RSA被广泛使用.RSA是1977年由罗纳德·李维斯特(RON RIVEST).阿迪·萨莫尔(ADI SHAMIR)和伦纳德· ...

  10. WebGL简易教程(七):绘制一个矩形体

    目录 1. 概述 2. 示例 2.1. 顶点索引绘制 2.2. MVP矩阵设置 2.2.1. 模型矩阵 2.2.2. 投影矩阵 2.2.3. 视图矩阵 2.2.4. MVP矩阵 3. 结果 4. 参考 ...