P2121 拆地毯

题目背景

还记得 NOIP 2011 提高组 Day1 中的铺地毯吗?时光飞逝,光阴荏苒,三年过去了。组织者精心准备的颁奖典礼早已结束,留下的则是被人们踩过的地毯。请你来解决类似于铺地毯的另一个问题。

题目描述

会场上有 n 个关键区域,不同的关键区域由 m 条无向地毯彼此连接。每条地毯可由三个整数 u、v、w 表示,其中 u 和 v 为地毯连接的两个关键区域编号,w 为这条地毯的美丽度。

由于颁奖典礼已经结束,铺过的地毯不得不拆除。为了贯彻勤俭节约的原则,组织者被要求只能保留 K 条地毯,且保留的地毯构成的图中,任意可互相到达的两点间只能有一种方式互相到达。换言之,组织者要求新图中不能有环。现在组织者求助你,想请你帮忙算出这 K 条地毯的美丽度之和最大为多少。

输入输出格式

输入格式:

第一行包含三个正整数 n、m、K。

接下来 m 行中每行包含三个正整数 u、v、w。

输出格式:

只包含一个正整数,表示这 K 条地毯的美丽度之和的最大值。

输入输出样例

输入样例#1: 复制

5 4 3
1 2 10
1 3 9
2 3 7
4 5 3

输出样例#1: 复制

22

说明

选择第 1、2、4 条地毯,美丽度之和为 10 + 9 + 3 = 22。

若选择第 1、2、3 条地毯,虽然美丽度之和可以达到 10 + 9 + 7 = 26,但这将导致关键区域 1、2、3 构成一个环,这是题目中不允许的。

1<=n,m,k<=100000

思路:并查集

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define MAXN 100010
using namespace std;
struct nond{int x,y,z;
}edge[MAXN];
int fa[MAXN];
int n,m,k,ans,tot;
int find(int x){if(fa[x]==x)    return fa[x];else return fa[x]=find(fa[x]);
}
int cmp(nond a,nond b){return a.z>b.z;
}
int main(){scanf("%d%d%d",&n,&m,&k);for(int i=1;i<=m;i++)scanf("%d%d%d",&edge[i].x,&edge[i].y,&edge[i].z);sort(edge+1,edge+1+m,cmp);for(int i=1;i<=n;i++)    fa[i]=i;for(int i=1;i<=m;i++){int dx=find(edge[i].x);int dy=find(edge[i].y);if(dx==dy)    continue;fa[dy]=dx;tot++;ans+=edge[i].z;if(tot==k)    break;}cout<<ans;
}

转载于:https://www.cnblogs.com/cangT-Tlan/p/8638950.html

洛谷 P2121 拆地毯相关推荐

  1. 洛谷P1003 铺地毯 noip2011提高组day1T1

    洛谷P1003 铺地毯 noip2011提高组day1T1 洛谷原题 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n ...

  2. 洛谷 P1003 铺地毯

    题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号从小到大的顺序平行于 ...

  3. 洛谷P1003铺地毯

    题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 nn 张地毯,编号从 11 到 nn.现在将这些地毯按照编号从小到大的顺序 ...

  4. 洛谷题库答案(持续更新)

    p1000 超级玛丽游戏  洛谷 p1000 超级玛丽游戏_cyyyyds857的博客-CSDN博客 p1001 A+B problem  A+B problem_cyyyyds857的博客-CSDN ...

  5. 信息学奥赛一本通 1118:铺地毯 | 1863:【11NOIP提高组】铺地毯 | OpenJudge NOI 1.9 14 | 洛谷 P1003 [NOIP2011 提高组] 铺地毯

    [题目链接] ybt 1118:铺地毯 ybt 1863:[11NOIP提高组]铺地毯 OpenJudge NOI 1.9 14:铺地毯 洛谷 P1003 [NOIP2011 提高组] 铺地毯 [题目 ...

  6. c/c++ 洛谷 P1003 【NOIP2011 提高组】 铺地毯

    题目链接 洛谷 P1003 [NOIP2011 提高组] 铺地毯 不想戳的看下图: 样例及解释 数据范围 解题思路: 从后往前找地毯,找到了我就输出并返回. 代码如下: #include <io ...

  7. 洛谷P3397 地毯

    洛谷P3397 地毯 二维差分 与一维差分类似 每次修改相当于只要修改4个地方就可以了 然后将差分数组来一次前缀和就能做好了 1 #include <cstdio> 2 #include ...

  8. 洛谷 - 试炼场(全部题目备份)

    整理的算法模板合集: ACM模板 目录 1.新手村 1 - 1 洛谷的第一个任务 1 - 2 顺序与分支 1 - 3 循环!循环!循环! 1 - 4 数组 1 - 5 简单字符串 1 - 6 过程函数 ...

  9. 洛谷P2766-最长递增子序列问题

    chunlvxiong的博客 题目描述: 给定正整数序列x1,...,xn (1≤n≤500). 1.计算其最长递增子序列的长度s. 2.计算从给定的序列中最多可取出多少个长度为s的递增子序列. 3. ...

最新文章

  1. 【架构】互联网架构三马车:微服务+消息队列+定时任务
  2. Mysql视图与数据备份
  3. 算法(9)--两个数的最大公约数
  4. eclipse linux c开发环境,Eclipse下搭建C/C++开发环境
  5. OPPO Reno造乐节落地重庆 华语乐坛十大金曲榜单公布
  6. “进化”的搜索方式:揭秘微软语义搜索背后的技术
  7. ubuntu nvidia 驱动卸载
  8. 5000预算组装台式机配置清单
  9. 学计算机的看图写话,小老鼠上网看图写话
  10. windows 2008 r2 kb4512486 安装失败解决方法
  11. 再谈王垠/王垠—写给清华大学的退学申请
  12. Android编译内核并刷入
  13. pytorch 中 .detach() .detach_() 和 .data的区别
  14. 【115@365】三国杀开源系列之六-入口文件解读
  15. Docker容器内部 DNS 解析失败的问题
  16. 畅想未来计算机300字,畅想未来作文300字5篇
  17. 面试技巧---白话文
  18. EfficientNet B0 训练 Standford 汽车图片分类(对比ResNet34)
  19. 干支纪年法简便算法_不用万年历快速推算日柱干支法
  20. C/C++数字后面的L是什么意思?

热门文章

  1. 提交信息html模板,提交留言HTML模板代码
  2. 请问我应该怎么做,才能让前端的基础打牢固?
  3. 24岁大专非科班转行前端开发可行性有多少?
  4. 适合转HTML5大前端的5类人!有你吗?
  5. 本地 mysql 数据库 上线 服务器_MySQL把本地数据库上传到服务器
  6. mysql如何大矩阵_如何打印矩阵
  7. 扫雷php,PHP也可以写扫雷游戏 不信看这里 PHP挖地雷
  8. python装饰器模式带参数_python 装饰器模式 我的理解
  9. 字符串模式匹配(bf+KMP)
  10. VS studio 2019 加 CUDA + CUDNN 开发环境配置