[第1章 1.2t8] 琪露诺

151 字
1 分钟
[第1章 1.2t8] 琪露诺
//跟上一题有异曲同工之妙,把区间掰成两段,先把满足l的入队并排序
//接着消除不满足r的元素,使用dp不断计算每个位置的最大收益
//最后注意并非每个位置都可退出游戏,需要在合法i位置取最大值
//注意窗口主要维护的是j,i只是比较对象
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll INF=-1e18;
int main(){
ll n,l,r;
cin>>n>>l>>r;
vector<ll> a(n+1);
vector<ll> gain(n+1,INF);
gain[0]=0;
deque<ll> qq;
for(ll i=0;i<=n;i++)cin>>a[i];
ll j=0;
ll ans=INF;
for(ll i=1;i<=n;i++){
while(i>=j+l){
if(gain[j]!=INF){
while(!qq.empty()&&gain[qq.back()]<gain[j])qq.pop_back();
qq.push_back(j);
}
j++;
}
while(!qq.empty()&&i-qq.front()>r)qq.pop_front();
if(!qq.empty()){
gain[i]=gain[qq.front()]+a[i];
if(i+r>n)ans=max(ans,gain[i]);
}
}
cout<<ans<<endl;
return 0;
}

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
[第1章 1.2t8] 琪露诺
https://hecloud.top/posts/12t8-琪露诺/
作者
贺小云
发布于
2026-06-26
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
贺小云
一个热爱技术与折腾的博客,serverless起高楼,静态构建一键走,专注于CDN调优,2秒之内到德州。
公告
欢迎来到我的博客!这是一则示例公告。
分类
标签
碎碎念
站点统计
文章
46
分类
4
标签
0
总字数
23,903
运行时长
0
最后活动
0 天前
站点信息
构建平台
Local
博客版本
Firefly v6.16.5
文章许可
CC BY-NC-SA 4.0

当前页面没有目录