news 2026/8/30 5:21:19

小苯的能量项链【牛客tracker 每日一题】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
小苯的能量项链【牛客tracker 每日一题】

小苯的能量项链

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

网页链接

牛客tracker

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

题目描述

小苯有一个含有n nn颗珠子的“能量项链”,珠子排成一排,其中第i ii颗珠子的能量为a i a_iai

但是这个项链并不稳定,如果项链的珠子个数不少于 3 个,则它即将发生“崩坏”,即:除了第一颗珠子和最后一颗珠子以外的其余所有珠子都将销毁,最终只留下第一颗和最后一颗珠子。

小苯现在希望项链在“崩坏”后保留尽可能多的能量,为此他可以在崩坏前执行以下的操作:

两种操作各自均需要花费 1 秒时间,而现在距离项链发生“崩坏”仅剩k kk秒,小苯想知道,他最多可以保留住多少能量,请你帮他算一算吧。

输入描述

每个测试文件内都包含多组测试数据。

第一行一个正整数T ( 1 ≤ T ≤ 1000 ) T\ (1 \le T \le 1000)T(1T1000),表示测试数据的组数。

接下来对于每组测试数据,输入包含两行。

第一行两个整数n , k ( 1 ≤ n ≤ 5 × 10 5 , 0 ≤ k ≤ 10 9 ) n,k\ (1 \le n \le 5 \times 10^5,0 \le k \le 10^9)n,k(1n5×105,0k109),表示项链的珠子个数和距离项链“崩坏”的时间。

第二行n nn个正整数a i ( 1 ≤ a i ≤ 10 9 ) a_i\ (1 \le a_i \le 10^9)ai(1ai109),表示每颗珠子的能量。

(保证所有测试数据中n nn的总和不超过5 × 10 5 5 \times 10^55×105。)

输出描述

对于每组测试数据,输出一行一个整数表示小苯能保留的最大能量。

示例1

输入:

2 5 2 2 3 4 5 2 1 1 114514

输出:

8 114514

说明:
对于第一组测试数据,距离发生“崩坏”还有k = 2 k=2k=2秒,最优的方案是删除目前的第一个和最后一个数字,那么项链的能量会变成{ 3 , 4 , 5 } \{3,4,5\}{3,4,5},最终3 335 55会保留下来,因此最大值为8 88

对于第二组测试数据,由于项链珠子个数小于3,因此不会发生崩坏,最终保留的能量就是114514 114514114514

解题思路

本题是贪心 + 滑动窗口维护前缀最大值的经典题型。需要在最多k kk次删除头/尾操作后,使得最终(可能崩坏后)保留的能量最大。由于崩坏只保留首尾两个珠子(若剩余珠子数≥ 3 \ge 33),或者剩余珠子数< 3 <3<3时直接保留全部,问题可以转化为选择两个位置l ≤ r l \le rlr作为最终保留的首尾,满足操作次数限制,并最大化v l + v r v_l + v_rvl+vr

1. 问题等价转化
2. 算法设计
3. 复杂度分析

总结

将操作后的首尾保留问题转化为选择满足约束的两个位置,通过固定右端点并维护左侧前缀最大值,在线性时间内求出最大能量和。dif的设置巧妙涵盖了剩余珠子数为2 22(不崩坏)和≥ 3 \ge 33(崩坏)两种情况,使算法统一简洁。

代码内容

#include<bits/stdc++.h>usingnamespacestd;#defineendl'\n'typedeflonglongll;typedefunsignedlonglongull;typedefvector<vector<ll>>vvt;typedefpair<ll,ll>pll;constll N=1e3+10;constll INF=1e18;constll M=1e6+10;constll mod=998244353;usingi128=__int128_t;voidsolve(){ll n,k;cin>>n>>k;vector<ll>v(n+1);for(ll i=1;i<=n;i++)cin>>v[i];if(n<3){ll ans=0;for(ll i=1;i<=n;i++)ans+=v[i];cout<<ans<<'\n';return;}ll dif=max(2LL,n-k);ll mx=0;ll ans=0;for(ll i=dif;i<=n;i++){mx=max(mx,v[i-dif+1]);ans=max(ans,mx+v[i]);}cout<<ans<<'\n';}intmain(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);ll t;cin>>t;while(t--)solve();return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/30 5:20:20

湿度传感器的类型有哪些?国产平替的优势

ALPIMET温湿度传感器是一种用来测量环境空气中水蒸气含量的电子元件&#xff0c;能将湿度变化转换为电信号输出 。它广泛应用于智能家居、工业控制、气象监测及农业等领域&#xff0c;帮助系统实现自动除湿、加湿或环境记录 。‌‌它是怎么测量湿度的湿度传感器主要通过感湿材料…

作者头像 李华
网站建设 2026/8/30 5:18:45

ROS2机器人自主导航与视觉系统构建实战指南

简介&#xff1a;本资源是一套面向高校机器人方向毕业设计、课程设计及期末大作业的ROS2综合实践项目&#xff0c;聚焦于未知环境下的自主导航与视觉感知两大核心能力。项目基于ROS2框架&#xff0c;完整实现SLAM建图、AMCL定位、全局/局部路径规划、避障导航及基于摄像头的目标…

作者头像 李华
网站建设 2026/8/30 5:18:43

Rmweb:为reMarkable Paper Pro打造的软件渲染墨水屏浏览器

这次我们来看一个专门为 reMarkable Paper Pro 设计的网页浏览器项目&#xff1a;Rmweb。它的核心卖点是“软件渲染”&#xff0c;而不是 GPU 硬件加速。这个思路和普通桌面浏览器完全相反&#xff0c;却正好踩中了墨水屏设备的痛点&#xff1a;刷新慢、交互轻、不需要复杂动画…

作者头像 李华
网站建设 2026/8/30 5:18:27

从OpenAI自研芯片看AI芯片之争:GPU、CUDA与开发者实战

最近 AI 芯片领域最热的一条消息&#xff0c;莫过于 OpenAI 自研芯片的传闻与英伟达创始人黄仁勋的公开回应。一边是大模型厂商希望摆脱对单一供应商的依赖&#xff0c;另一边是英伟达强调自己在做“截然不同”的事情。很多开发者看到这类新闻&#xff0c;最关心的其实是另一个…

作者头像 李华
网站建设 2026/8/30 5:15:27

【2026年】通风柜气流组织CFD仿真分析与应用

通风柜是实验室安全防护的核心设备&#xff0c;其对挥发性气态污染物的捕集能力&#xff0c;直接决定了实验人员的人身安全。气流组织是否合理&#xff0c;是评价通风柜捕集效率的关键。过去&#xff0c;通风柜设计主要依赖经验公式和实物测试&#xff0c;周期长、成本高。随着…

作者头像 李华