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

北语 12.6Unaverage 2

点击查看代码
#include<bits/stdc++.h>
using namespace std;typedef long long LL;
const int N=1e5+10;
int n,k;
LL a[N],b[N],s[N];bool check(LL x)
{//预处理前缀和数组for(int i=1;i<=n;i++){b[i]=a[i]*1000-x;s[i]=s[i-1]+b[i];}LL mn=0;for(int i=k;i<=n;i++){mn=min(mn,s[i-k]);if(s[i]-mn>=0) return true;}return false;
}int main()
{scanf("%d%d",&n,&k);for(int i=1;i<=n;i++) scanf("%lld",&a[i]);LL l=0,r=1e12,mid,ans;while(l<=r){LL mid=l+r>>1;if(check(mid)) l=mid+1,ans=mid;else r=mid-1;}cout<<ans;return 0;
}
一道非常棒的题目,考察了前缀和二分 对思维的考察很深入 首先,题目要求在长度为n的数组中找到长度大于等于k的平均值最大的片段,我们可以假设平均值x,然后对数组的每一个元素都减去x,这样看一个片段的和是否大于0就可知他们的平均值是否大于x,问题就转化为了求片段和,可以用前缀和 其次,如何搜索长度大于等于k的片段和最大片段,我们可以从左右端点的角度考虑,固定右端点用来遍历。动态维护一个左端点,我们要让一个片段和最大就是s[j]-s[i-1]最大,那么左端点s[i-1]就是越小越好,我们在遍历右端点的过程中可以顺便维护左端点的最小性,用min(mn,s[i-k])即可 最后,我们二分查找答案即可,因为l=r的时候我们还要对ans的值做操作,l,r不是直接返回值(好像也可以。。。不过还是养成好习惯 话外,二分直接满足向下取整了,不用再考虑了,因为实际值就是较小值啊
http://www.gsyq.cn/news/76748.html

相关文章:

  • 探寻机织布源头厂家、正规厂家与制造厂的魅力
  • 有名靠谱的家政服务企业推荐——广州市喜相缘家政有限公司
  • 2025申请香港研究生的中介机构价格
  • ⸢ 拾肆-Ⅱ⸥⤳ 实战检验应用实践(下):自动化检验 演练复盘 - 教程
  • 解读上海浩潭环保科技有限公司的市场口碑、专业性与案例效果
  • 2025 年11月角接触球轴承生产厂家实力推荐:机床/电主轴/磨床/数控车床/光伏专用/切片机/高转速/低噪音/配对角接触球轴承,精准选型与性能优势深度解析
  • 2025香港留学中介机构排名前十有哪些
  • 健康住宅刻不容缓!狄耐克以六恒健康科技,回应全民无醛居住期待
  • 华为ENSP-Pro连通性测试报错 - xiaobai-bianhao
  • 花都湘菜馆大揭秘:寻味湘村,家庭聚餐的高性价比之选
  • 春申驾校:上班族与学员的靠谱之选
  • 多台设备数据采集怎么实现?其关键要素和挑战是什么?
  • 2025年质量好的工业螺杆真空泵/真空泵热门厂家推荐榜单
  • 2025 年 12 月磁铁厂家权威推荐榜:强力磁铁/钕铁硼/铁氧体/橡胶磁铁等全品类深度解析与创新应用指南
  • 2025年口碑好的卫浴柜卫浴收纳厂家最新权威实力榜
  • 2025年口碑好的园区食堂承包/常州食堂承包专业外包公司排名
  • 名雕装饰:口碑与实力兼具的家装之选
  • 2025年度微动开关定制厂家质量与服务双优榜,小型微动开关/防水微动开关/新能源微动开关/鼠标微动开关/微动开关厂家口碑推荐榜单
  • Zabbix/Nagios开源监控工具实操教程:部署+监控项配置+告警规则设置
  • 2.1高性能网络设计专栏-网络编程
  • 2025年终舆情预警分析平台公司实力榜盘点(年度精选)
  • 2025年12月舆情管理平台服务商最新排行榜单发布:舆情监测、舆情预警、舆情分析报告
  • 2025上海留学中介机构十强
  • 2025上海留学中介口碑排名
  • 2025年12月GEO品牌厂家口碑排行榜:摘星AI领先厂商综合评测
  • 2025年塑料回收行业领军企业排行榜揭晓,目前诚信的塑料回收机构行业优质排行榜亮相
  • 企业级AI知识库终极对决:PandaWiki如何用开源方案碾压传统客服系统?
  • 微信小程序软件开发定制软件设计商城分销点餐外卖系统模板小程序
  • 2025上海留学机构排名一览表
  • 2025上海留学机构十强排名