洛谷 P2121 拆地毯
P2121 拆地毯
题目背景
还记得 NOIP 2011 提高组 Day1 中的铺地毯吗?时光飞逝,光阴荏苒,三年过去了。组织者精心准备的颁奖典礼早已结束,留下的则是被人们踩过的地毯。请你来解决类似于铺地毯的另一个问题。
题目描述
会场上有 n 个关键区域,不同的关键区域由 m 条无向地毯彼此连接。每条地毯可由三个整数 u、v、w 表示,其中 u 和 v 为地毯连接的两个关键区域编号,w 为这条地毯的美丽度。
由于颁奖典礼已经结束,铺过的地毯不得不拆除。为了贯彻勤俭节约的原则,组织者被要求只能保留 K 条地毯,且保留的地毯构成的图中,任意可互相到达的两点间只能有一种方式互相到达。换言之,组织者要求新图中不能有环。现在组织者求助你,想请你帮忙算出这 K 条地毯的美丽度之和最大为多少。
输入输出格式
输入格式:
第一行包含三个正整数 n、m、K。
接下来 m 行中每行包含三个正整数 u、v、w。
输出格式:
只包含一个正整数,表示这 K 条地毯的美丽度之和的最大值。
输入输出样例
5 4 3 1 2 10 1 3 9 2 3 7 4 5 3
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 拆地毯相关推荐
- 洛谷P1003 铺地毯 noip2011提高组day1T1
洛谷P1003 铺地毯 noip2011提高组day1T1 洛谷原题 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n ...
- 洛谷 P1003 铺地毯
题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号从小到大的顺序平行于 ...
- 洛谷P1003铺地毯
题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 nn 张地毯,编号从 11 到 nn.现在将这些地毯按照编号从小到大的顺序 ...
- 洛谷题库答案(持续更新)
p1000 超级玛丽游戏 洛谷 p1000 超级玛丽游戏_cyyyyds857的博客-CSDN博客 p1001 A+B problem A+B problem_cyyyyds857的博客-CSDN ...
- 信息学奥赛一本通 1118:铺地毯 | 1863:【11NOIP提高组】铺地毯 | OpenJudge NOI 1.9 14 | 洛谷 P1003 [NOIP2011 提高组] 铺地毯
[题目链接] ybt 1118:铺地毯 ybt 1863:[11NOIP提高组]铺地毯 OpenJudge NOI 1.9 14:铺地毯 洛谷 P1003 [NOIP2011 提高组] 铺地毯 [题目 ...
- c/c++ 洛谷 P1003 【NOIP2011 提高组】 铺地毯
题目链接 洛谷 P1003 [NOIP2011 提高组] 铺地毯 不想戳的看下图: 样例及解释 数据范围 解题思路: 从后往前找地毯,找到了我就输出并返回. 代码如下: #include <io ...
- 洛谷P3397 地毯
洛谷P3397 地毯 二维差分 与一维差分类似 每次修改相当于只要修改4个地方就可以了 然后将差分数组来一次前缀和就能做好了 1 #include <cstdio> 2 #include ...
- 洛谷 - 试炼场(全部题目备份)
整理的算法模板合集: ACM模板 目录 1.新手村 1 - 1 洛谷的第一个任务 1 - 2 顺序与分支 1 - 3 循环!循环!循环! 1 - 4 数组 1 - 5 简单字符串 1 - 6 过程函数 ...
- 洛谷P2766-最长递增子序列问题
chunlvxiong的博客 题目描述: 给定正整数序列x1,...,xn (1≤n≤500). 1.计算其最长递增子序列的长度s. 2.计算从给定的序列中最多可取出多少个长度为s的递增子序列. 3. ...
最新文章
- 【架构】互联网架构三马车:微服务+消息队列+定时任务
- Mysql视图与数据备份
- 算法(9)--两个数的最大公约数
- eclipse linux c开发环境,Eclipse下搭建C/C++开发环境
- OPPO Reno造乐节落地重庆 华语乐坛十大金曲榜单公布
- “进化”的搜索方式:揭秘微软语义搜索背后的技术
- ubuntu nvidia 驱动卸载
- 5000预算组装台式机配置清单
- 学计算机的看图写话,小老鼠上网看图写话
- windows 2008 r2 kb4512486 安装失败解决方法
- 再谈王垠/王垠—写给清华大学的退学申请
- Android编译内核并刷入
- pytorch 中 .detach() .detach_() 和 .data的区别
- 【115@365】三国杀开源系列之六-入口文件解读
- Docker容器内部 DNS 解析失败的问题
- 畅想未来计算机300字,畅想未来作文300字5篇
- 面试技巧---白话文
- EfficientNet B0 训练 Standford 汽车图片分类(对比ResNet34)
- 干支纪年法简便算法_不用万年历快速推算日柱干支法
- C/C++数字后面的L是什么意思?
热门文章
- 提交信息html模板,提交留言HTML模板代码
- 请问我应该怎么做,才能让前端的基础打牢固?
- 24岁大专非科班转行前端开发可行性有多少?
- 适合转HTML5大前端的5类人!有你吗?
- 本地 mysql 数据库 上线 服务器_MySQL把本地数据库上传到服务器
- mysql如何大矩阵_如何打印矩阵
- 扫雷php,PHP也可以写扫雷游戏 不信看这里 PHP挖地雷
- python装饰器模式带参数_python 装饰器模式 我的理解
- 字符串模式匹配(bf+KMP)
- VS studio 2019 加 CUDA + CUDNN 开发环境配置