题目描述

输入输出格式

输入格式:

在实际评测时,将只会有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. mgo操作mongodb

    mgo基本使用: http://labix.org/mgo 安装 # go get gopkg.in/mgo.v2 package main import ( "fmt" &quo ...

  2. 渗透测试----access偏移注入

    偏移注入指access偏移注入,由于数据库结构的问题,偏移注入只适用于access数据库.对于access数据库来说,无论是逐字猜解还是联合查询注入,都是需要我们能够猜到用户名和密码的列名(字段),才 ...

  3. Cookie的临时存储和定时存储

    Cookie解决了不同请求的数据共享问题.是由服务器保存在客户端的小文本文件,包含了用户的信息,可以避免用户重复输入用户名和密码进行登录.浏览器请求Cookie,服务器响应时返回Cookie,浏览器存 ...

  4. 【深入学习MySQL】MySQL的索引为什么使用B+树?

    前言 在MySQL中,无论是Innodb还是MyIsam,都使用了B+树作索引结构(这里不考虑hash等其他索引).本文将从最普通的二叉查找树开始,逐步说明各种树解决的问题以及面临的新问题,从而说明M ...

  5. [C++] 头文件中的#ifndef,#define,#endif以及#pragma用法

    想必很多人都看过“头文件中用到的 #ifndef/#define/#endif 来防止该头文件被重复引用”.但是是否能理解“被重复引用”是什么意思?头文件被重复引用了,会产生什么后果?是不是所有的头文 ...

  6. 这些Mysql常用命令你是否还记得?

    前言 记录mysql常用命令操作 基础操作 命令行登录mysql  mysql -u用户名 -p用户密码 为表增加创建时间和更新时间 ALTER TABLE order_info_tbl ADD CO ...

  7. maven 3.6的安装

    呵呵,按网上的步骤不能安装maven3.6,所以降低版本.因为3.6的没有bin文件夹. 下载地址:https://archive.apache.org/dist/maven/maven-3/3.5. ...

  8. 由"跨域"引出的一个终极思想(jsonp)

    1.什么是跨域? 当协议.子域名.主域名.端口号中任意一个不相同时,都算作不同域. 跨域并不是请求发不出去,请求能发出去,服务端能收到请求并正常返回结果,但是因为浏览器存在一个"同源策略&q ...

  9. rpm -qa|grep nfs >/dev/null 2>&1作用

    在使用一些shell命令是,经常会用到rpm -qa|grep nfs >/dev/null 2>&1之类的命令,该命令干嘛用的呢? 其实这个命令就是将rpm -qa|grep n ...

  10. 【SQL server初级】SQL SERVER Transactional Replication中添加新表如何不初始化整个快照

    在SQL SERVER的复制(Replication)中,有可能出现由于业务需求变更,需要新增一张表或一些表到已有的复制(发布订阅)当中,这种需求应该是很正常,也很常见的.但是在已有的复制(发布订阅) ...