博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces985E. Pencils and Boxes (单调队列)
阅读量:4708 次
发布时间:2019-06-10

本文共 682 字,大约阅读时间需要 2 分钟。

题意:n个数 把他们放进一些盒子里 每个盒子最少放k个数 且最小和最大的差不能大于d

题解:显然排个序 对于当前点 存一下前面有哪些节点可以当作结尾

   那么就可以枚举这些点的下一个点作为起点能否和当前点组成合法区间

   找到的第一个大小不超过d的点显然是最优的 这样会使区间尽可能大于k

   如果找到了这个点就把他放入队列 那么就是单调队列了...

 

#include 
using namespace std;int q[500005];int que[500005];int main(){ int n, k, d; cin>>n>>k>>d; for(int i = 1; i <= n; i++) scanf("%d", &q[i]); sort(q + 1, q + 1 + n); int l = 1, r = 1; que[l] = 0; for(int i = k; i <= n; i++) { while(l <= r && q[i] - q[que[l] + 1] > d) l++; if(l <= r && i - que[l]>= k) que[++r] = i; } if(que[r] == n) puts("YES"); else puts("NO"); return 0;}
View Code

 

转载于:https://www.cnblogs.com/lwqq3/p/9074998.html

你可能感兴趣的文章
Python 2.7_Second_try_爬取阳光电影网_获取电影下载地址并写入文件 20161207
查看>>
[Fiddler] 开启Fiddler抓包的时候产品报“证书错误”
查看>>
打包苦逼活
查看>>
Django:视图views(一)
查看>>
Oracle Certified Java Programmer 经典题目分析(二)
查看>>
k8s-service
查看>>
Swift 用Delegate和Block实现回调的Demo
查看>>
第二十五章补充内容 17位字段
查看>>
灰色预测
查看>>
css随笔
查看>>
基于自己封装的select下拉选择的省市区三级联动效果,兼容IE
查看>>
booking.sh
查看>>
机器学习--避免过度拟合 笔记
查看>>
Linux SSH 基于密钥交换的自动登录原理简介及配置说明
查看>>
mariadb connector bug
查看>>
KnockoutJs学习笔记(十二)
查看>>
Noip2018游记
查看>>
Oracle11g数据库在Win系统下的安装
查看>>
初识Python
查看>>
nodejs+mysql入门实例(改)
查看>>