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

打卡信奥刷题(3195)用C++实现信奥题 P8102 「LCOI2022」 Cow Insertion

P8102 「LCOI2022」 Cow Insertion

题目背景

Farmer John 迎来了新奶牛——Bessie。每个奶牛都会有一定的开心值,Farmer John 希望 Bessie 能更幸福的生活在这里。

题目描述

牛棚里原来有nnn头奶牛,开心值的感染距离mmm,并且aia_iai表示原来牛棚中第i(1≤i≤n)i(1\le i\le n)i(1in)头牛的开心值。并且,Bessie 同样拥有一个开心值AAA

整个牛棚的开心值是∑i=1n−m+1 max⁡i≤j≤i+m−1 aj\sum\limits_{i=1}^{n-m+1}\ \max\limits_{i\le j\le i+m-1}\ a_ji=1nm+1iji+m1maxaj,Bessie 可以住在任意两头牛的中间或起始以及最后。Farmer John 想知道:Bessie 来这里之后,整个牛棚的开心值最大为多少。

输入格式

第一行包含三个整数n,m,An,m,An,m,A。分别表示为奶牛个数,开心值的感染距离,以及 Bessie 的开心值。

接下来一行,包含nnn个数aia_iai,表示原来牛棚中第i(1≤i≤n)i(1\le i\le n)i(1in)头牛的开心值。

输出格式

仅一行,表示 Bessie 来这里之后,整个牛棚的开心值的最大值。

输入输出样例 #1

输入 #1

3 2 50 60 100 70

输出 #1

270

说明/提示

【样例解释】

  • 当 Bessie 在第一个位置时(50,60,100,7050,60,100,7050,60,100,70),整个牛棚的开心值的最大值为max⁡{60,50}+max⁡{60,100}+max⁡{100,70}\newcommand{\cases}[1]{\{#1\}}\max\cases{60,50}+\max\cases{60,100}+\max\cases{100,70}max{60,50}+max{60,100}+max{100,70},即60+100+100=26060+100+100=26060+100+100=260
  • 当 Bessie 在第二个位置时(60,50,100,7060,50,100,7060,50,100,70),整个牛棚的开心值的最大值为max⁡{60,50}+max⁡{50,100}+max⁡{100,70}\newcommand{\cases}[1]{\{#1\}}\max\cases{60,50}+\max\cases{50,100}+\max\cases{100,70}max{60,50}+max{50,100}+max{100,70},即60+100+100=26060+100+100=26060+100+100=260
  • 当 Bessie 在第三个位置时(60,100,50,7060,100,50,7060,100,50,70),整个牛棚的开心值的最大值为max⁡{60,100}+max⁡{100,50}+max⁡{50,70}\newcommand{\cases}[1]{\{#1\}}\max\cases{60,100}+\max\cases{100,50}+\max\cases{50,70}max{60,100}+max{100,50}+max{50,70},即100+100+70=270100+100+70=270100+100+70=270
  • 当 Bessie 在第四个位置时(60,100,70,5060,100,70,5060,100,70,50),整个牛棚的开心值的最大值为max⁡{60,100}+max⁡{100,70}+max⁡{70,50}\newcommand{\cases}[1]{\{#1\}}\max\cases{60,100}+\max\cases{100,70}+\max\cases{70,50}max{60,100}+max{100,70}+max{70,50},即70+100+100=27070+100+100=27070+100+100=270

显然,整个牛棚的开心值的最大值为max⁡{260,260,270,270}=270\newcommand{\cases}[1]{\{#1\}}\max\cases{260,260,270,270}=270max{260,260,270,270}=270

【数据范围与约定】

subtaskn≤n\len分值
1115×1025\times10^25×102101010
2225×1035\times10^35×103202020
3335×1065\times10^65×106707070

对于100%100\%100%的数据,1≤m≤n1\le m\le n1mn0≤ai,A≤1000\le a_i, A\le1000ai,A100

C++实现

#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>usingnamespacestd;longlongf[5000010],a[5000010],g[5000010];intq[5000010],st=1,ed;intmain(){intn,m;longlongA;scanf("%d%d%lld",&n,&m,&A);longlongsum=A;for(inti=1;i<=n;i++){scanf("%lld",a+i);sum+=a[i];if(st<=ed&&i-q[st]>=m-1)st++;while(st<=ed&&a[q[ed]]<a[i])ed--;q[++ed]=i;if(i>=m-1)f[i]=a[q[st]];}// 单调队列求 f 数组if(m==1){printf("%lld\n",sum);return0;}// 特判st=1,ed=0;for(inti=1;i<=n;i++){if(st<=ed&&i-q[st]>=m)st++;while(st<=ed&&a[q[ed]]<a[i])ed--;q[++ed]=i;if(i>=m)g[i]=a[q[st]];}// 清空队列,不另外开新数组,节省空间for(inti=m+1;i<=n;i++)g[i]+=g[i-1];for(inti=m;i<=n;i++)f[i]=max(A,f[i])+f[i-1];longlongans=0;for(inti=0;i<=n;i++)ans=max(ans,g[max(i-m+1,0)]+g[n]-g[i]+f[i]-f[max(i-m,0)]);printf("%lld\n",ans);return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

http://www.jsqmd.com/news/734475/

相关文章:

  • 通过Taotoken用量看板分析并优化大模型API调用策略
  • 【Ubuntu使用BUG】解决使用 Ubuntu to go 换机后 NVIDIA 驱动失效
  • 大语言模型评估新方法TrustJudge解析与应用
  • Fedora 43 通过DNF命令升级Fedora 44实战操作保姆级教程
  • 2026年3月透光石生产厂家推荐,树脂饰面板/防火树脂板/透光板/夹丝板/液态金属板/透光石/夹植物板,透光石厂商找哪家 - 品牌推荐师
  • Docker 27存储驱动“静默卡死”故障(无OOM无报错):从page cache锁竞争到blk-mq调度器瓶颈的全链路追踪
  • 终极系统优化指南:使用FlyOOBE全面掌控Windows性能
  • FPGA加速LLM推理:LUT技术实现低延迟与高能效
  • 3分钟掌握B站缓存视频永久保存技巧:m4s转MP4完整教程
  • 打卡信奥刷题(3196)用C++实现信奥题 P8103 「LCOI2022」 Cow Merger
  • EVK-IRIS-W101,集成Wi-Fi 6双频与蓝牙5.3的开CPU多无线电评估套件
  • 互联网大厂面试:Java SE 11, Spring Boot与微服务架构
  • 3分钟实现Figma中文界面:设计师必备的终极汉化指南
  • 稀疏自编码器在语言模型特征解释中的应用与实践
  • Ghost Bits:高位截断如何让 Java WAF 形同虚设
  • 机器人模仿学习与强化学习结合应用解析
  • Spring Boot mTLS 报 `keystore password was incorrect`:不一定是密码错了
  • 【项目实战】从 0 到 1 构建智能协同云图库(六):多级缓存与图片查询优化深度总结
  • 为Hermes Agent配置自定义模型提供商指向Taotoken服务
  • Shopee关联店铺的原因有哪些?Shopee多账号防关联指南
  • 终极Mac清理工具Pearcleaner:三步彻底卸载应用,让Mac重获新生
  • 生辰祭吾女 ☜请点击这里可看全文
  • 41 openclaw分布式会话管理:跨服务状态同步方案
  • 别再死记硬背了!用Python+NumPy实战帮你搞定线性代数核心术语(附中英对照表)
  • Laravel 12正式版AI工程化实战:如何在72小时内构建带RAG、流式响应与Token预算控制的智能后台系统?
  • 【Tidyverse 2.0权威前瞻】:2026自动化报告实战指南——仅3%数据科学家已掌握的R新范式
  • 5个秘诀打造电视盒子控制神器:手机变身智能遥控中心
  • QMCDecode:3步解锁QQ音乐加密格式,让音乐真正属于你
  • PvZ Toolkit终极指南:如何用开源游戏修改器解锁植物大战僵尸无限可能
  • 多模态思维链技术:AI图像生成与迭代优化新范式