Codeforces 985 E - Pencils and Boxes
E - Pencils and Boxes
思路:
dp
先排个序,放进一个袋子里的显然是一段区间
定义状态:pos[i]表示小于等于i的可以作为(放进一个袋子里的)一段区间起点的离i最近的位置
显然,初始状态:pos[i] = 1,1 <= i <= k
状态转移:
pos[i+1] = i+1 ,如果 a[i] - a[pos[i-k+1]] <= d , 因为在这种情况下pos[i-k+1] 到 i 可以放进一个袋子里,那么i+1就可以作为新的起点了
pos[i+1] = pos[i], 其他情况
最后只要判断pos[n+1] 等不等于 n+1 就可以判断是不是都能放进袋子里
代码:
#include<bits/stdc++.h> using namespace std; #define fi first #define se second #define pi acos(-1.0) #define LL long long //#define mp make_pair #define pb push_back #define ls rt<<1, l, m #define rs rt<<1|1, m+1, r #define ULL unsigned LL #define pll pair<LL, LL> #define pii pair<int, int> #define mem(a, b) memset(a, b, sizeof(a)) #define fio ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); #define fopen freopen("in.txt", "r", stdin);freopen("out.txt", "w", stout); //headconst int N = 5e5 + 5; int a[N], pos[N]; int main() {int n, k, d;scanf("%d%d%d", &n, &k, &d);for (int i = 1; i <= n; i++) scanf("%d", &a[i]);sort(a+1, a+1+n);for (int i = 1; i <= k; i++) pos[i] = 1;for (int i = k; i <= n; i++) {int pre = pos[i-k+1];if(a[i] - a[pre] <= d) pos[i+1] = i+1;else pos[i+1] = pos[i];//cout << i+1 << " " << pos[i+1] << endl; }if(pos[n+1] == n+1) printf("YES\n");else printf("NO\n");return 0; }
转载于:https://www.cnblogs.com/widsom/p/9074831.html
Codeforces 985 E - Pencils and Boxes相关推荐
- CodeForces 985 E Pencils and Boxes
Pencils and Boxes 题意: n支铅笔,每只笔有一个颜色值, 无限个盒子, 如果一个盒子里面放笔的话, 就至少需要k支笔装在一起,并且一个盒子里面的笔的颜色值只差 不能大于 d.如果满足 ...
- codeforces contest 985E. Pencils and Boxes+思维
类似指针的想法 E. Pencils and Boxes time limit per test 2 seconds memory limit per test 256 megabytes input ...
- Codeforces - Pencils and Boxes
题目链接:Codeforces - Pencils and Boxes 显然可以dp,dp[i] 为前 i 个是否合法. 然后sort一下,然后枚举当前位置的时候,二分或者尺取找到最远的合法的位置.然 ...
- 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 ...
- E. Pencils and Boxes codeforces(思维+dp)
题目链接:E. Pencils and Boxes 题意: 给出n个数字,分组,每组大小>=k,并且同一组内任意两个数字大小不能超过d 思路: 先从小到大排序.然后dp.起点肯定是第一个数字,然 ...
- E. Pencils and Boxes(尺取dp)
E. Pencils and Boxes(尺取&dp) 显然按val排序,然后考虑dp,显然转移的jjj随iii增加不会递减,接着考虑限制条件,显然i往右走,要是差值小于d,i递增, 因为有k ...
- cf 985E Pencils and Boxes
一 原题 E. Pencils and Boxes time limit per test 2 seconds memory limit per test 256 megabytes input st ...
- CodeForces - 985E(Pencils and Boxes)
题意:分配 n 个铅笔到笔筒中,每个笔筒最少放k个笔,每只铅笔有个value,同一个盒子中放入的笔的value差不能大于d,问能否找到满足条件的方案. 分析:根据题意,我们可以推出答案一定是将铅笔按 ...
最新文章
- iOS的KVO实现剖析
- 想要高效在线办公,建议你“百度如流”一下:项目管理、协作文档都来了,还有AI翻译和速记等黑科技...
- 说一说网站与搜索引擎之间不得不知的联系
- python画树叶-手把手|如何用Python绘制JS地图?
- [C++ Primer] 第2章: 变量
- 消息中间件学习总结(9)——RocketMQ与kafka差异比较分析
- ubuntu下查看apache的日志
- html标记详解博客,HTML表格标记详解8:表格嵌套
- 高德地图POI数据爬取
- 使用谷歌云盘和colab训练自己的数据集(yolov5格式)
- 软件测试——测试分类及测试工具的简介
- 三种模型验证方法:holdout, K-fold, leave one out cross validation(LOOCV)
- 微信号名称乱码什么情况_“微信号”与“微信账号”有什么区别?
- 小米Android 13 应用适配指南公告
- 降本提效,贝壳搜索推荐架构统一之路
- MIT-BIH-ECG使用
- multisim安装后无法连接数据库_计算机重装系统时遭遇错误意外重启后无法安装,这是什么原因?...
- element表格里面放图片_Element ui表格展示图片问题
- 从《MySQL必知必会》中对MySQL的理解
- 2021/3/6 OJ每日一题 小媛在努力