E. Pencils and Boxes codeforces(思维+dp)
题目链接: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)相关推荐
- E. Pencils and Boxes(尺取dp)
E. Pencils and Boxes(尺取&dp) 显然按val排序,然后考虑dp,显然转移的jjj随iii增加不会递减,接着考虑限制条件,显然i往右走,要是差值小于d,i递增, 因为有k ...
- E. Pencils and Boxes(划窗+dp+树状数组)
题目 题意: 给定n个数,要求将n个数划分为若干集合.要求每个集合大小至少为k,且集合元素两两差值不大于d. 1≤k≤n≤5⋅105,0≤d≤109,1≤ai≤1091 ≤ k ≤ n ...
- Codeforces - Pencils and Boxes
题目链接:Codeforces - Pencils and Boxes 显然可以dp,dp[i] 为前 i 个是否合法. 然后sort一下,然后枚举当前位置的时候,二分或者尺取找到最远的合法的位置.然 ...
- Codeforces 985 E - Pencils and Boxes
E - Pencils and Boxes 思路: dp 先排个序,放进一个袋子里的显然是一段区间 定义状态:pos[i]表示小于等于i的可以作为(放进一个袋子里的)一段区间起点的离i最近的位置 显然 ...
- codeforces contest 985E. Pencils and Boxes+思维
类似指针的想法 E. Pencils and Boxes time limit per test 2 seconds memory limit per test 256 megabytes input ...
- CodeForces 985 E Pencils and Boxes
Pencils and Boxes 题意: n支铅笔,每只笔有一个颜色值, 无限个盒子, 如果一个盒子里面放笔的话, 就至少需要k支笔装在一起,并且一个盒子里面的笔的颜色值只差 不能大于 d.如果满足 ...
- CodeForces 985E Pencils and Boxes
Description Mishka received a gift of multicolored pencils for his birthday! Unfortunately he lives ...
- CodeForces - 985E Pencils and Boxes
可以证明的是,总是存在一种最优策略使得每个组内的权值都是连续的. 所以排完序一遍 two pointers就好啦. Discription Mishka received a gift of mult ...
- cf 985E Pencils and Boxes
一 原题 E. Pencils and Boxes time limit per test 2 seconds memory limit per test 256 megabytes input st ...
最新文章
- SpringBoot注入数据的方式
- Image转Base64镶嵌网页中
- 滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(11月9日~11月13日)...
- 学习笔记 ---- 设计模式之观察者模式
- 思科中如何给服务器添加个人信息,使用 RADIUS 服务器进行的外部 Web 身份验证...
- C++训练:自由落体问题
- 字符串匹配——朴素算法Brute-Force(布鲁特-福斯算法)
- MongoDB在Windows10上的安装配置和基本语句
- 【狂神说Java】Spring Boot笔记
- 【搬运】罗霸道网文写作经验分享
- 12面魔方公式图解法_魔方小站三级12面魔方教程拍个视频
- echarts二次渲染时宽高为0图表不显示
- 网页加入动态动漫人物
- Java中如何将一个数组分割成多个等长度的数组
- SOAP(简单对象访问协议) 1.1规范简介
- 公租自行车-北京经济技术开发区
- 女朋友家亲戚让我做个电商网站,说和淘宝一样就行。。。
- 10大游戏显存占用率测试
- 信息与通信的数学基础——第一章 复数与复变函数
- 服务器数据库监控系统,数据库监控系统
热门文章
- 并联串联混合的电压和电流_用“串反并同”和“等效电源”秒解电压、电流、功率怎么变的问题...
- 喜马拉雅android sdk接入,喜马拉雅(com.ximalaya.ting.android) - 8.0.1.3 - 应用 - 酷安
- 520送男友的纪念礼物,最适合跑步/运动的蓝牙耳机推荐
- Atlas (一) --------- Atlas 入门
- 求知若饥,虚心若愚Stay Hungry, Stay Foolish--2005斯坦福大学05年毕业演讲
- 《The Art Of Effective Rigging In Blender》笔记:Leg Pole Target设置
- 手写一个栈 java,数据结构|用java自己手写实现一个栈
- javascript中的esm,import, export
- 求职简历撰写要点和模板分享
- java实现txt文件/文本转语音(全网最详细易懂)