【BZOJ4582】【Usaco2016 open】Diamond Collector 贪心
来源:互联网 发布:mac etc目录 编辑:程序博客网 时间:2024/05/01 10:46
我必须承认做这题的主要目的是练习英文。。。
题目大意:给出n个大小不同的钻石和两个盒子,每个钻石可以放进某个盒子或者不放,但不能同时放入两个盒子,并且满足每个盒子中最大钻石和最小钻石的尺寸值不超过K,求两个盒子加起来最多一共可以放入多少颗钻石。
比较裸的排序后贪心,先由小到大排序,O(n)预处理出从i开始放最多可以放几颗到一个盒子,再找两个不相交的最大区间求和即可。
/**************************************************************
Problem: 4582
User: RicardoWang
Language: C++
Result: Accepted
Time:68 ms
Memory:1664 kb
****************************************************************/
#include<cstdlib>
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<vector>
using
namespace
std;
#define maxn 50015
int
n,k,A[maxn],ans[maxn];
void
Init()
{
scanf
(
"%d%d"
,&n,&k);
for
(
int
i=1;i<=n;i++)
scanf
(
"%d"
,&A[i]);
sort(A+1,A+1+n);
return
;
}
void
work()
{
int
Ans=0,j=1;
for
(
int
i=1;i<=n;i++)
{
while
(A[j]-A[i]<=k && j<=n)j++;
ans[i]=j-i;
}
for
(
int
i=n;i>=1;i--)
{
Ans=max(Ans,ans[i]+ans[i+ans[i]]);
ans[i]=max(ans[i],ans[i+1]);
}
printf
(
"%d\n"
,Ans);
return
;
}
int
main()
{
//freopen("in.txt","r",stdin);
Init();
work();
return
0;
}
0 0
- 【BZOJ4582】【Usaco2016 open】Diamond Collector 贪心
- [BZOJ4582][Usaco2016 Open]Diamond Collector(二分+st表)
- BZOJ 4582: [Usaco2016 Open]Diamond Collector
- 贪心?DP?——BZOJ4582/Luogu3143 [USACO16OPEN]钻石收藏家Diamond Collector
- bzoj 4582: [Usaco2016 Open]Diamond Collector (单调队列+线段树)
- 【BZOJ4576】【BZOJ4580】【Usaco2016 Open】262144 贪心
- [DP || 贪心 链表] BZOJ 4576 [Usaco2016 Open]262144 & BZOJ 4580 [Usaco2016 Open]248
- 【BZOJ4580】[Usaco2016 Open]248【区间DP】【或 贪心】
- bzoj4576【Usaco2016 Open】262144
- BZOJ4580 [Usaco2016 Open]248
- BZOJ4580: [Usaco2016 Open]248
- [Usaco2016 Open]Field Reduction
- BZOJ4586: [Usaco2016 Open]Landscaping
- bzoj4586: [Usaco2016 Open]Landscaping
- 4580: [Usaco2016 Open]248
- 模拟 [bzoj 4582] Diamond Collector
- BZOJ4580: [Usaco2016 Open]248 dp
- BZOJ 4580: [Usaco2016 Open]248
- opencv异常提示之 (channels() == CV_MAT_CN(dtype)) in copyTo (暂未解决,提供源码)
- LeetCode-3-Longest Substring Without Repeating Characters
- http与HTTPS
- 便利的开发工具 CppUnit 快速使用指南
- 学习PS涂抹工具
- 【BZOJ4582】【Usaco2016 open】Diamond Collector 贪心
- 使用Spring Cloud Config搭建配置中心
- 红黑树java实现
- 通过这次源码分析直播了解到在中国真正关心源码的webrtc开发者只有1%
- bfs 2016.5.2
- 比较常用的一些数组操作函数 mysql函数
- 归并排序 递归版和非递归版的实现(java)
- 逻辑运算
- SpotLight和NSUserActivity的使用