社区讨论
0分求助(玄关)
P1725琪露诺参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @lx35vjcr
- 此快照首次捕获于
- 2024/06/06 19:15 2 年前
- 此快照最后确认于
- 2024/06/06 21:39 2 年前
CPP
#include<bits/stdc++.h>
using namespace std;
int a[200005],dp[200005];
struct Node{
int w,i;
};
deque<Node>p;//zhu,bei
int main(){
int n,l,r;
scanf("%d%d%d",&n,&l,&r);
for(int i=0;i<=n;i++){
scanf("%d",&a[i]);
}
for(int i=0;i<=n+1;i++){
if(!p.empty()&&p.back().i<i-l){
p.pop_back();
}
if(p.empty()){
dp[i]=a[i];
}
else{
dp[i]=a[i]+p.back().w;
}
if(i-l+1>=1){
while(!p.empty()&&dp[i-l]>=p.front().w){
p.pop_front();
}
p.push_front({dp[i-l],i});
}
}
for(int i=0;i<=n+1;i++){
printf("%d ",dp[i]);
}
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...