CF985E Pencils and Boxes

Anki 间隔重复算法 SM-2 优化:基于 1000 道四级真题,构建 30 天记忆曲线 本文深入探讨了Anki间隔重复算法SM-2的优化方法,基于1000道四级真题构建30天记忆曲线。通过动态校准遗忘曲线、智能分级真题语料及弹性缓冲机制,显著提升记忆留存率至89%。文章还详细介绍了动态卡组构建、30天训练周期设计及认知负荷优化策略,帮助语言学习者高效备考。 阅读详情

原题链接:http://codeforces.com/problemset/problem/985/E

Pencils and Boxes

Mishka received a gift of multicolored pencils for his birthday! Unfortunately he lives in a monochrome world, where everything is of the same color and only saturation differs. This pack can be represented as a sequence a1, a2, …, an of n integer numbers — saturation of the color of each pencil. Now Mishka wants to put all the mess in the pack in order. He has an infinite number of empty boxes to do this. He would like to fill some boxes in such a way that:

Each pencil belongs to exactly one box;
Each non-empty box has at least k pencils in it;
If pencils i and j belong to the same box, then |ai - aj| ≤ d, where |x| means absolute value of x. Note that the opposite is optional, there can be pencils i and j such that |ai - aj| ≤ d and they belong to different boxes.
Help Mishka to determine if it’s possible to distribute all the pencils into boxes. Print “YES” if there exists such a distribution. Otherwise print “NO”.

Input

The first line contains three integer numbers n, k and d (1 ≤ k ≤ n ≤ 5·105, 0 ≤ d ≤ 109) — the number of pencils, minimal size of any non-empty box and maximal difference in saturation between any pair of pencils in the same box, respectively.

The second line contains n integer numbers a1, a2, …, an (1 ≤ ai ≤ 109) — saturation of color of each pencil.

Output

Print “YES” if it’s possible to distribute all the pencils into boxes and satisfy all the conditions. Otherwise print “NO”.

Examples
input

6 3 10
7 2 7 7 4 2

output

YES

input

6 2 3
4 5 3 13 4 10

output

YES

input

3 2 5
10 16 22

output

NO

Note

In the first example it is possible to distribute pencils into 2 boxes with 3 pencils in each with any distribution. And you also can put all the pencils into the same box, difference of any pair in it won’t exceed 10.

In the second example you can split pencils of saturations [4, 5, 3, 4] into 2 boxes of size 2 and put the remaining ones into another box.

题目大意

给定 n n 个数,要放到多个盒子里,要求每个盒子至少有k个数,盒子中数的最大值与最小值之差小于 d d ,问是否有合法划分方案。

题解

比较显然的是,排序之后,将连续的一段数字放在一起肯定较优。假设排完序后的序列为x, dp[i] d p [ i ] 表示前 i i 个数能否被划分。对于xi,它可以跟 [xi−d→xi−k+1,xi−1] [ x i − d → x i − k + 1 , x i − 1 ] 中的任意一个区间的数放在一起,我们只需要查找 [xi−d,xi−k+1] [ x i − d , x i − k + 1 ] 这段区间内有没有 dp d p 值为 1 1 的就行了。

代码
#include<bits/stdc++.h>
using namespace std;
const int M=5e5+5;
int n,k,d,le,a[M],dp[M],has[M];
void in(){scanf("%d%d%d",&n,&k,&d);for(int i=1;i<=n;++i)scanf("%d",&a[i]);}
void ac()
{
    sort(a+1,a+1+n);
    dp[0]=has[0]=1;
    for(int i=1;i<=n;++i)
    {
        while(le<=i-k&&a[i]-a[le+1]>d)++le;
        if(i>=k&&le+k<=i&&has[i-k]-has[le-1]>=1)dp[i]=1;
        has[i]=has[i-1]+dp[i];
    }
    puts(dp[n]?"YES":"NO");
}
int main(){in();ac();}
ADRV9009学习资料保存:基于XC7Z100+ADRV9009的双收双发无线电射频板卡 ADRV9009学习资料保存:基于XC7Z100+ADRV9009的双收双发无线电射频板卡 一、板卡概述 基于XC7Z100+ADRV9009的双收双发无线电射频板卡是基于XilinxZYNQFPGA和ADI的无线收发芯片ADRV9009开发的专用功能板卡,用于5G小基站,无线图传,数据收发... 阅读详情

相关推荐

linux redis7 完整的集群搭建过程

一。安装: 1.1 说明: Redis官方只提供了源码,并没有提供经过编译之后的安装包。 因此,安装Redis,要先编译、后安装。(即源码安装方式) 注意:需要联网安装 1.2 安装编译的工具: yum install gcc gcc-c++ -y 1.3 下载tar包,上传到linux服务器,解压配置环境变量 1.4 cd +解压的目录下:编译 make 注意:如果编译失败,请重新进行解压编译,...

m0_38028438的博客 719

CF985E 题解

省流:不是DP

mukari的博客 270

中国主要湖泊水库面状矢量边界图层ArcGIS应用实战:从数据获取到专题图制作

本文详细介绍了中国主要湖泊水库面状矢量边界图层在ArcGIS中的实战应用,从数据获取到专题图制作的全流程。涵盖官方数据源、科研机构共享数据及商业平台的选择,以及ArcGIS中的数据处理、拓扑错误修正和专题图设计技巧,帮助用户高效完成湖泊水库的空间分析与可视化。

weixin_33672400的博客 256

双指针优化dp,CF985E - Pencils and Boxes

那么写一个暴力的状态转移:f(i) = f(i) || f(j), i - j <= k && a[i - 1] - a[j] <= d。我们定义状态f(i) 代表前 i 个数字是否可以划分,初始化f[0] = true。时间复杂度: O(NlogN)空间复杂度:O(N)我们发现随着 i 的增大,j 的 左边界也增大。记录[j, i]内 true 的数目 即可。我们可以双指针边移动i,边移动j。

EQUINOX1的博客 384

ESP32S3学习——i2c,点亮0.96寸oled

ESP32S3学习——i2c,点亮0.96寸oled

HandBAI的博客 1万+

分享一些基于微信小程序开发的小游戏源码

小游戏小程序是运行在微信生态系统(或其他支持小程序的平台)中的轻量级应用程序,专为休闲游戏体验而设计的小程序子类别,小游戏小程序通常体积较小,加载速度快,用户无需等待长时间即可开始游戏。用户无需下载或安装单独的游戏应用程序,即可通过小程序入口直接进入游戏,同时小游戏小程序通常包含排行榜、分享功能等社交元素,可以增强游戏体验并促进用户参与。game.js:游戏页面的逻辑文件,包含页面数据、生命周期函数、事件处理函数等。game.wxml:游戏页面的结构文件,定义了页面的布局和组件。

xinshangdian的博客 6239

【DP】Codeforces 985 E. Pencils and Boxes

题意:将n只笔放入若干个盒子中,每个盒子至少有k只,每个盒子内最长的笔和最短的笔长度差不超过d,有没有合法的方法? 题解:一开始的想法是把笔的长度排序后,对每一只笔二分出第一支不能和它放在一起的笔。将两支笔中间的笔向两边分。但这种方法会改变每次右边 区间的最小值。 正解用到了DP的思想,dp[i] = 1 表示从这支笔开始取到最后一只有合法的放法。 转移方程:如果[i+k,r[i]]区间...

nymph_h的博客 349

【AI概念】迁移学习 vs. 域自适应 vs. 域泛化|定义、核心原理、数学表达、易混淆点与工程选择建议|实际案例、工程实现细节、未来研究趋势、实际应用场景

大家好,我是爱酱。本篇将会详细梳理迁移学习(Transfer Learning)、域自适应(Domain Adaptation)、域泛化(Domain Generalization)三大常被混淆的核心概念,结合数学公式、典型算法与实际应用场景,帮助你厘清它们的本质区别、联系与工程意义。 注:本文章含大量数学算式、详细例子说明及大量代码演示,大量干货,建议先收藏再慢慢观看理解。新频道发展不易,你们的每个赞、收藏跟转发都是我继续分享的动力!

AI人工智能爱酱~你的AI学习好帮手~ 2471

CodeForces 985 E Pencils and Boxes

Pencils and Boxes 题意: n支铅笔,每只笔有一个颜色值, 无限个盒子, 如果一个盒子里面放笔的话, 就至少需要k支笔装在一起,并且一个盒子里面的笔的颜色值只差 不能大于 d。如果满足条件就输出YES,不满足就输出NO 题解: 对于这一条直线来说, B,C的长度为K+1, && val[C] - vla[A+1] <= d 如果我们说点C能...

dengpangbu3703的博客 190

数据分享|2023年OSM道路数据(全国,分省,分市)

首先这个工作非常有必要的,因为我们正常使用的道路的分类都是基于包括城市快速路、城市主干路、城市次干路这个体系的,大家对于这个分类体系应该更熟悉,但是OSM地图的道路分类又不是完全按这个来的,所以非常有必要重新分类;搞清楚道路类型是我们使用道路数据做很多工作的基础,比如我们在使用道路数据的时候,经常需要预估道路的行车速度,而这个速度一般就是根据道路类型来的,比如高架路的车速肯定就比城市支路快很多!下载分为两种情况,第一种是下载小区域的数据,比如下载一个街区的数据,第二种为下载整个中国范围的。

JData_Engineer的博客 4307

生成模型实战 | StyleGAN详解与实现

StyleGAN 能够生成非常高分辨率人脸图像的关键在于,在增加分辨率的步骤中逐步增加生成网络和判别网络的复杂性,以便在每一步中,两个模型都可以很好地完成任务。我们学习了如何通过确保每个分辨率的特征由一个独立的输入(称为风格向量)来控制,从而操纵生成图像的风格,以及如何通过将图像之间的风格进行交换来操作不同图像的风格。

盼小辉丶的博客 7640

Codeforces 985E Pencils and Boxes DP+two-pointers

E. Pencils and Boxestime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputMishka received a gift of multicolored pencils for his birthday! Unfortunately...

J. Cole 446

ThingsBoard教程(一):ThingBoard介绍及安装

ThingsBoard介绍 最近看了很多开源的物联网的项目,其中有一个让我印象很深,那就是Thingsboard 下面我就给大家介绍一下这个项目,并指导大家如何在本地安装一个Thingsboard来体验它。 首先引用官网的项目介绍就是 一个开源的用于数据收集,处理,可视化和设备管理的开源物联网平台。 它通过行业标准的物联网协议(MQTT,CoAP和HTTP)实现设备连接,并支持云和本地部署。ThingsBoard结合了可伸缩性,容错性和性能,因此您永远不会丢失数据。 用它开源收集链接设备,收集设备的数据,

知无涯 2万+

021 Pencils and Boxes (CF985E)

题目链接:CF985E 标签:DP,思维 题目大意:给你n个数,问能否将这些数分成几组,每组至少k个数,每组数极差不超过d 思路:先排序,用dp[i]判断这个数能否作为一个序列的结尾(这个组的最大数) 代码: #include<bits/stdc++.h> using namespace std; #define ll long long const int maxn=500005...

饮冰室 271

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

cf 985E Pencils and Boxes

一 原题E. Pencils and Boxestime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputMishka received a gift of multicolored pencils for his birthday! Unfortuna...

max_kibble的博客 559

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

CF985E Pencils and Boxes(树状数组+dp)

树状数组优化dp问题 #include<bits/stdc++.h> using namespace std; const int N=5e5+10; int n,k,d; int b[N]; int a[N]; int f[N]; int lowbit(int x){ return x&-x; } void update(int x,int v){ while(x<=n){ b[x]+=v; x+=lowbit(x); } } int query(int x)

qq_44866969的博客 197

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

[Codeforces 985.E] Pencils and Boxes(dp,前缀和优化)

E. Pencils and Boxes time limit per test: 2 seconds memory limit per test: 256 megabytes input: standard input output: standard output Mishka received a gift of multicolored pencils for his birth...

PhantomAgony 521

【双指针优化DP】CF985E

但是平常写的分段DP都是n^2的,这里的可以发现单调性,因此考虑双指针转移。首先肯定需要排个序,然后分段DP。这里两个指针都代表两个段的右端点。

weixin_62528401的博客 336

树状数组优化dp——cf985E经典

/* dp[i]=0|1 表示前i是否可以被成功分组, dp[i+1]能够变成1的三个条件 1:j∈[0,i-k]里存在dp[j]=1 2:dp[j]=1 3:a[i+1]-a[j+1]<=d 即可以把[j+1,i+1]分为一组,放在前j个之后 先进行排序,暴力的复杂度是o(n*n) 其实每次求dp[i]时,只要考虑区间[pos,i-k]的dp即可,pos为第...

weixin_30823227的博客 220

E. Pencils and Boxes (树状数组优化dp)

传送门 1.题意 给出n个数,要求给这些数分组,每组不少于k个。 每组的数之间的差不能大于d。是否能够分组? 2.dp分析 先排序。 f[i]f[i]f[i]表示[1~i]能够分组成功。 答案就是f[n]f[n]f[n] 如何更新? 举例: n=12 k=3 d=2 1 2 3 9 10 11 12 13 14 15 15 15 当更新到b[11]b[11]b[11](15)时: 1.[8 ~ 11]能分成一组,如果[1 ~ 7]能够分组成功(f[7]f[7]f[7]=1),则[1 ~ 11]能够分组

sancpp的博客 284

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

E. Pencils and Boxestime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputMishka received a gift of multicolored pencils for his birthday! Unfortunately...

a1046765624的博客 476

Codeforces 985E Pencils and Boxes(尺取法/two pointers)

传送门题意:给定n,k,d,表示给你n支铅笔,每支有一个权值v。现在让你把n支笔放入一些盒子中(盒子数量可以无穷大),每个盒子中至少有k支笔,而且每个盒子中的笔的max(v)-min(v)不超过d。问你能否找到一个合法的放法,可以输出"YES",否则输出"NO"。思路:因为对权值差有要求,所以先进行排序,排序后能放进一个盒子的笔的权值v一定是连续的。之后记录两个值,一个是can[i],表示第i支笔...

Stupid_Turtle的博客 663

CF-Educational Codeforces Round 44 (Rated for Div. 2)-E-Pencils and Boxes

ACM模版 描述 题解 这个题没有想象中那么难,和 CCC 题有些可借鉴之处。 在排序之后,进行贪心。首先我们考虑如果要满足题意,一共需要分为 nknk\frac{n}{k} 组,因为只有组数最多才能保证每堆的铅笔数尽量少,继而可以尽量保证每组的差值小于等于 ddd,如果每组第一个数是 pospospos,那么这组数最大不会超过 a[pos]+da[pos]+da[pos] + d...

逐梦者 469

CodeForces 985E Pencils and Boxes (线性DP+queue)

题目链接 题意:给你N个数,现在需要你对他进行划分集合,要求每个集合的元素个数必须大于等于K,而且要求集合中的最大值减去最小值的差值要小于等于D,问你是否存在划分方法,存在就输出YES,否知输出NO. 题解:定义dp[i]表示以i为结尾的前i个数是否都存在合法的集合.           队列q中存的数是可能作为当前下标左边界的下标,他们之间的下标差值一定满足大于等于K.         ...

Fushicho_XF的博客 399

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

题目 题意:     给定n个数,要求将n个数划分为若干集合。要求每个集合大小至少为k,且集合元素两两差值不大于d。     1 ≤ k ≤ n ≤ 5⋅105,0 ≤ d ≤ 109,1 ≤ ai ≤ 1091 ≤ k ≤ n ≤ 5·10^5, 0 ≤ d ≤ 10^9,1 ≤ a_i ≤ 10^91 ≤ k ≤ n ≤ 5⋅105,0 ≤ d ≤ 109,1 ≤ ai​ ≤ 109 分析:     要求集合内元素差值不超过d,也就是最大值与最小值的差值不能超过d。所以我们肯定按顺序形成集合。对于一个元

weixin_44316314的博客 294
上一篇: Luogu4712「生物」能量流动
下一篇: BZOJ5212[ZJOI2018]历史
ShadyPi
博客等级 码龄9年 1万+粉丝 637原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShadyPi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值