【BZOJ4582】【Usaco2016 open】Diamond Collector 贪心

这道题目考察的是在限制条件下将n个大小不一的钻石分配到两个盒子中,使得每个盒子内的钻石尺寸差不超过K。通过排序并进行贪心策略,先从小到大依次放入钻石,预处理出每个起点能放入的最大钻石数,然后寻找两个不相交的最大区间以最大化总数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我必须承认做这题的主要目的是练习英文。。。

题目大意:给出n个大小不同的钻石和两个盒子,每个钻石可以放进某个盒子或者不放,但不能同时放入两个盒子,并且满足每个盒子中最大钻石和最小钻石的尺寸值不超过K,求两个盒子加起来最多一共可以放入多少颗钻石。

比较裸的排序后贪心,先由小到大排序,O(n)预处理出从i开始放最多可以放几颗到一个盒子,再找两个不相交的最大区间求和即可。

/**************************************************************
     Problem: 4582
     User: RicardoWang
     Language: C++
     Result: Accepted
     Time:68 ms
     Memory:1664 kb
****************************************************************/
 
#include<cstdlib>
#include<cstdio>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值