社区讨论
ST表RE求调
P1714切蛋糕参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @m1yusdor
- 此快照首次捕获于
- 2024/10/07 18:12 去年
- 此快照最后确认于
- 2025/11/04 17:41 4 个月前
CPP
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N=5e5+20;
int n,m;
int a[N];
int s[N];
int st[N<<1][30];
int query(int L,int R){
int p=log2(R-L+1);
return min(st[L][p],st[R-(1<<p)+1][p]);
}
int ans;
signed main(){
scanf("%lld%lld\n",&n,&m);
for(int i=1;i<=n;i++){
scanf("%lld",a+i);
s[i]=s[i-1]+a[i];
st[i][0]=s[i];
}
st[0][0]=0;
if(m==0){
printf("0\n");
exit(0);
}
for(int i=1;i<=27;i++){
for(int j=0;j<=n&&j+(1<<(i-1))<=n;j++){
st[j][i]=min(st[j][i-1],st[j+1<<(i-1)][i-1]);
}
}
ans=-1;
for(int i=1;i<=n;i++){
ans=max(ans,s[i]-query((int)(max(0ll,i-m)),i-1));
}
printf("%lld\n",ans);
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...