当前位置: 首页 > news >正文

小红的数组清空【牛客tracker 每日一题】

小红的数组清空

时间限制:1秒 空间限制:256M

网页链接

牛客tracker

牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每日有题做,丰盈牛币日益多!

题目描述

小红拿到了一个数组,她准备用尽可能少的代价将该数组全部清空。
小红有两种操作:

  1. 直接删除一个元素x xx,花费代价为1 11
  2. 若上一个删除的元素为x xx,那么直接删除一个元素x + 1 x+1x+1,花费代价为0 00。该操作仅当x + 1 x+1x+1在数组中存在时才可进行。

请你求出小红清空整个数组的最小代价。

输入描述:

第一行输入一个正整数n nn,代表数组的大小。
第二行输入n nn个正整数a i a_iai​,用空格隔开。代表数组的元素。
1 ≤ n ≤ 10 5 1≤n≤10^51n105
1 ≤ a i ≤ 10 9 1≤a_i≤10^91ai109

输出描述:

输出一个正整数,代表小红清空整个数组的最小代价。

示例1

输入:

3 1 2 3

输出:

1

说明:

第一次操作,删除1 11,代价为1 11
第二次操作,删除2 22,代价为0 00
第三次操作,删除3 33,代价为0 00

示例2

输入:

5 2 1 6 5 7

输出:

2

示例3

输入:

2 1 1

输出:

2

解题思路

本题采用排序+双端队列贪心策略求解最小清空代价,核心是最大化零代价删除的连续递增序列次数,先将数组排序以按数值递增顺序处理元素,用双端队列维护可衔接的“前驱数值”;遍历每个元素时,先移除队列中小于当前元素− 1 -11的无效前驱(无法衔接),若队列首元素等于当前元素− 1 -11,说明可零代价删除该元素(弹出前驱、将当前元素入队作为新前驱),否则需花费1 11代价删除(当前元素入队、答案加1 11);排序操作时间复杂度为O ( n l o g n ) O( n logn)O(nlogn),遍历及队列操作整体为O ( n ) O(n)O(n),完美适配n ≤ 1 e 5 n≤1e5n1e5的规模,通过贪心选择最优的前驱衔接,最大化零代价操作次数,精准得到清空整个数组的最小代价。

代码内容

#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefunsignedlonglongull;typedefpair<ll,ll>pii;constll p=1e9+7;constll N=1e6+10;intmain(){ll n;cin>>n;vector<ll>a(n+1);for(ll i=1;i<=n;i++)cin>>a[i];sort(a.begin()+1,a.end());deque<ll>q;ll ans=0;for(ll i=1;i<=n;i++){while(!q.empty()&&q.front()<a[i]-1)q.pop_front();if(!q.empty()&&q.front()==a[i]-1){q.pop_front();q.push_back(a[i]);}else{q.push_back(a[i]);ans++;}}cout<<ans<<endl;return0;}
http://www.jsqmd.com/news/361948/

相关文章:

  • 【课题介绍】矿井多爆破工作面下,爆破后通风风量、分配与分风策略研究
  • 2026年数智组织与管理国际学术会议 (ICDIOM 2026)
  • 哈尔滨本地生活团购代运营首选:三十六行网络实力领跑 - 野榜数据排行
  • Flutter Zero 是什么?它的出现有什么意义?为什么你需要了解下?
  • 性能分析案例
  • 腾讯混元 CL-bench:一次针对大模型上下文学习能力的工程级评测
  • 锅炉控制系统,西门子200smartPLC程序(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 2026年硕士论文维普AIGC查重率高?比本科更严的降AI攻略
  • 政务大厅自助终端,涉外业务自主办
  • ubuntu格式化新磁盘并扩容到lvm
  • 深入解析:使用 Docker 一键部署 PaddleOCR-VL: 新手保姆级教程
  • mybatis-plus 基于 Mapper接口的 update
  • 西门子S7-1200 PLC 游泳池水处理远程控制设计文章(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • AI Agent设计模式 Day 1:ReAct模式:推理与行动的完美结合 - 详解
  • 步向“数字一局”,中交一公局“语义 + AI”双引擎驱动经营管理智能化转型
  • 当用户输入变成系统指令:我的数据库完成了一次“公开处刑“
  • 树套树 | 题解:[ZJOI2013] K 大数查询
  • 首信保险代理靠谱吗?值得推荐吗?电话号码是多少? - 包罗万闻
  • DevOps平台行业实践案例:金融、政务、汽车行业成功经验分享
  • 【国家级学会专委会主办】2026年智能检测与运动控制技术国际会议(IDMCT 2026)
  • 海外求职机构有哪些?全球资源覆盖机构盘点(2026最新) - Matthewmx
  • ICLR 2026 | UIUC:一行代码,终结大模型“过度思考”!
  • 数据库的索引和约束
  • 生产物料分拣MCGS程序(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 配置html报告中的时间粒度granularity
  • 合集推荐|外籍人血浆靠谱的供应商+空白人血浆国内最专业供应商,猴全血/猴血清/比格犬血浆厂家一站式汇总 - 品牌推荐大师1
  • Typora绘制-饼图象限图
  • 第六章 二叉树part01
  • 实验室必备!高性价比纳米粒度仪选购推荐 - 品牌推荐大师1
  • cladue skills