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

OJ练习之加减(中等偏难)

加减

题号:NC224938
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小红拿到了一个长度为 n 的数组。她每次操作可以让某个数加 1 或者某个数减 1 。
小红最多能进行 k 次操作。她希望操作结束后,该数组出现次数最多的元素次数尽可能多。
你能求出这个最大的次数吗?

输入描述:

第一行两个正整数 n 和 k 第二行有 n 个正整数 ai 1≤n≤10^5 1≤k≤10^12 1≤ai≤10^9

输出描述:

不超过 k 次操作之后,数组中可能出现最多次数元素的次数。

示例1

输入

5 3 6 3 20 8 1

输出

2

说明

共 3 次操作如下: 第一个数加一。 第二个数加一。 第四个数减一。 数组变成了 7 4 20 7 1 ,共有 2 个相同的数: 7 。 可以证明, 2 为最优解。另外,此上操作并不是唯一的操作。

题解(前缀和+滑动窗口+贪心):

#include<iostream>#include<algorithm>usingnamespacestd;// k已经超出了int的范围,ai涉及到加减操作,很容易超出int范围,所以直接使用long longtypedeflonglongLL;constintN=1e5+10;LL n,k;LL arr[N];LL sum[N];LLcal(intleft,intright){// 选取区间内中间下标,对于区间内偶数个来说,选中间两个的任意一个结果都一样intmid=(left+right)/2;// 区间内:mid左边的个数×a[mid]-mid左边的和+mid右边和和 - mid右边的个数×a[mid]return(mid-left)*arr[mid]-(sum[mid-1]-sum[left-1])+(sum[right]-sum[mid])-(right-mid)*arr[mid];// 根据规律,总结出的公示可以直接O(1)出结果}intmain(){cin>>n>>k;// 将n个数存入,从下标1开始存入for(inti=1;i<=n;i++)cin>>arr[i];// 将n个数按照从小到大排序sort(arr+1,arr+1+n);// 将前i个数的和按照对应下标存入sum数组里备用for(inti=1;i<=n;i++)sum[i]=sum[i-1]+arr[i];intleft=1,right=1;intret=1;// 根据题意,ret最小也是1while(right<=n){// cal用来获取将区间所有数都变成同一个数的最小加减次数,即最小代价LL cost=cal(left,right);while(cost>k)// 如果最小代价比规定的都大,继续寻找更小的可能{left++;// 再扩大区间代价还会增大,要让left右移cost=cal(left,right);}// 更新retret=max(ret,right-left+1);// 当然选择满足的区间差值最大的right++;// 继续尝试寻找更优解}cout<<ret<<endl;return0;}
http://www.jsqmd.com/news/669550/

相关文章:

  • 告别仿真日志海:UVM报告机制深度实操,灵活控制Synopsys VIP输出
  • 2026年靠谱的扬州应急发电机组/扬州柴油发电机组/潍柴发电机组推荐公司 - 品牌宣传支持者
  • 10兆瓦数据中心年省3000万!液冷的经济账怎么算?
  • 如何在3天内快速上手OpenSPG知识图谱引擎?完整实战指南 [特殊字符]
  • Llama-3.2V-11B-cot多模态应用:建筑图纸合规性检查+条款溯源
  • 如何用智能PDF翻译工具BabelDOC实现专业文档双语化:技术深度解析与实战指南
  • AUTOSAR MCAL实战:手把手教你配置Fls驱动,避开地址对齐和掉电丢数据的坑
  • 2026年3月中央空调维修企业推荐,优质的中央空调维修企业哪家权威推荐企业引领行业技术新高度 - 品牌推荐师
  • 2026年CNC车间工业工厂空调/环保工厂空调/节能环保工厂空调/车间厂房工厂空调优质厂家汇总推荐 - 品牌宣传支持者
  • Java 编程基础语法(变量、数据类型、运算符)
  • AI 知道我但不主动推荐我:从识别到推荐之间还差哪些关键条件?
  • 计算机毕业设计:Python农产品销售数据可视化分析系统 Django框架 数据分析 可视化 大数据 大模型 机器学习(建议收藏)✅
  • 【RabbitMQ】路由模式(使用案例)
  • 第 32 课:任务卡片按状态分组与本地持久化
  • Windows Cleaner:终极免费开源工具,快速解决C盘爆红问题
  • 推荐系统常用指标NDCG含义及公式
  • 2026年本地工业通风降温/正负压通风降温/局部通风降温/通风降温管道优质供应商推荐 - 行业平台推荐
  • 力扣204
  • Hermes Agent 项目总览
  • Pixel Fashion Atelier部署教程:Mac M2/M3芯片通过MLX适配Stable Diffusion方案
  • 基于SpringBoot + Vue的社区互助系统
  • 2026年高精度浙江立式加工中心/立卧两用加工中心/加工中心/天车式加工中心厂家精选合集 - 品牌宣传支持者
  • 2026年口碑好的江苏减速机/江苏行星减速机优质厂家推荐榜 - 品牌宣传支持者
  • 2026年靠谱的连栋种植温室大棚/广东玻璃种植温室大棚推荐厂家精选 - 品牌宣传支持者
  • 图论——BFS搜索模板(python)
  • 2026年质量好的高压直流继电器/汽车继电器/小型继电器/信号继电器厂家选择推荐 - 行业平台推荐
  • win10、11系统磁盘空间不够,显示存储池占用,磁盘管理显示存储池分区,导致不能使用的解决方案
  • wan2.1-vae惊艳效果:2048×2048下1:1人脸特写——毛孔、睫毛、唇纹级细节
  • 2026年靠谱的浙江汽车空气悬挂/底盘空气悬挂高口碑品牌推荐 - 品牌宣传支持者
  • 2026年冲压车间岗位通风降温/工业通风降温厂家对比推荐 - 行业平台推荐