题目链接:E. Pencils and Boxes

题意:

给出n个数字,分组,每组大小>=k,并且同一组内任意两个数字大小不能超过d

思路:

先从小到大排序。然后dp。起点肯定是第一个数字,然后判断能够和它组成第一个组的下标位置,将这些位置的dp标记为1,然后从(这些位置+1)的地方作为起点继续往下找终点,找到能作为终点的位置都标记为1,然后往复,一直到结束。如果dp[n]被标记成了1就说明能够分组成功。输出YES,否注就NO。

代码:

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
long long a[500005];
int dp[500005];
int main()
{int n,k,i;long long d;cin>>n>>k>>d;for(i=1;i<=n;i++)cin>>a[i];sort(a+1,a+n+1);int  ind=1;memset(dp,0,sizeof(dp));dp[0]=1;for(i=0;i<=n;++i){if(dp[i]){//搜索过的就去掉 避免重复 不去掉一些特例会超时 ind=max(ind,i+k);//这边有个坑   如果数组开的不够大,一定要先判断下标 否注会越界。找了很久才发现 while(ind<=n&&a[ind]-a[i+1]<=d){dp[ind]=1;ind++;}}}if(dp[n])cout<<"YES";else cout<<"NO";return 0;
}

E. Pencils and Boxes codeforces(思维+dp)相关推荐

  1. E. Pencils and Boxes(尺取dp)

    E. Pencils and Boxes(尺取&dp) 显然按val排序,然后考虑dp,显然转移的jjj随iii增加不会递减,接着考虑限制条件,显然i往右走,要是差值小于d,i递增, 因为有k ...

  2. E. Pencils and Boxes(划窗+dp+树状数组)

    题目 题意:     给定n个数,要求将n个数划分为若干集合.要求每个集合大小至少为k,且集合元素两两差值不大于d.     1≤k≤n≤5⋅105,0≤d≤109,1≤ai≤1091 ≤ k ≤ n ...

  3. Codeforces - Pencils and Boxes

    题目链接:Codeforces - Pencils and Boxes 显然可以dp,dp[i] 为前 i 个是否合法. 然后sort一下,然后枚举当前位置的时候,二分或者尺取找到最远的合法的位置.然 ...

  4. Codeforces 985 E - Pencils and Boxes

    E - Pencils and Boxes 思路: dp 先排个序,放进一个袋子里的显然是一段区间 定义状态:pos[i]表示小于等于i的可以作为(放进一个袋子里的)一段区间起点的离i最近的位置 显然 ...

  5. codeforces contest 985E. Pencils and Boxes+思维

    类似指针的想法 E. Pencils and Boxes time limit per test 2 seconds memory limit per test 256 megabytes input ...

  6. CodeForces 985 E Pencils and Boxes

    Pencils and Boxes 题意: n支铅笔,每只笔有一个颜色值, 无限个盒子, 如果一个盒子里面放笔的话, 就至少需要k支笔装在一起,并且一个盒子里面的笔的颜色值只差 不能大于 d.如果满足 ...

  7. CodeForces 985E Pencils and Boxes

    Description Mishka received a gift of multicolored pencils for his birthday! Unfortunately he lives ...

  8. CodeForces - 985E Pencils and Boxes

    可以证明的是,总是存在一种最优策略使得每个组内的权值都是连续的. 所以排完序一遍 two pointers就好啦. Discription Mishka received a gift of mult ...

  9. cf 985E Pencils and Boxes

    一 原题 E. Pencils and Boxes time limit per test 2 seconds memory limit per test 256 megabytes input st ...

最新文章

  1. SpringBoot注入数据的方式
  2. Image转Base64镶嵌网页中
  3. 滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(11月9日~11月13日)...
  4. 学习笔记 ---- 设计模式之观察者模式
  5. 思科中如何给服务器添加个人信息,使用 RADIUS 服务器进行的外部 Web 身份验证...
  6. C++训练:自由落体问题
  7. 字符串匹配——朴素算法Brute-Force(布鲁特-福斯算法)
  8. MongoDB在Windows10上的安装配置和基本语句
  9. 【狂神说Java】Spring Boot笔记
  10. 【搬运】罗霸道网文写作经验分享
  11. 12面魔方公式图解法_魔方小站三级12面魔方教程拍个视频
  12. echarts二次渲染时宽高为0图表不显示
  13. 网页加入动态动漫人物
  14. Java中如何将一个数组分割成多个等长度的数组
  15. SOAP(简单对象访问协议) 1.1规范简介
  16. 公租自行车-北京经济技术开发区
  17. 女朋友家亲戚让我做个电商网站,说和淘宝一样就行。。。
  18. 10大游戏显存占用率测试
  19. 信息与通信的数学基础——第一章 复数与复变函数
  20. 服务器数据库监控系统,数据库监控系统

热门文章

  1. 并联串联混合的电压和电流_用“串反并同”和“等效电源”秒解电压、电流、功率怎么变的问题...
  2. 喜马拉雅android sdk接入,喜马拉雅(com.ximalaya.ting.android) - 8.0.1.3 - 应用 - 酷安
  3. 520送男友的纪念礼物,最适合跑步/运动的蓝牙耳机推荐
  4. Atlas (一) --------- Atlas 入门
  5. 求知若饥,虚心若愚Stay Hungry, Stay Foolish--2005斯坦福大学05年毕业演讲
  6. 《The Art Of Effective Rigging In Blender》笔记:Leg Pole Target设置
  7. 手写一个栈 java,数据结构|用java自己手写实现一个栈
  8. javascript中的esm,import, export
  9. 求职简历撰写要点和模板分享
  10. java实现txt文件/文本转语音(全网最详细易懂)