专栏文章
题解:P14063 [PO Final 2022] 海滩 / Badstrand
P14063题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mintfcjl
- 此快照首次捕获于
- 2025/12/02 08:03 3 个月前
- 此快照最后确认于
- 2025/12/02 08:03 3 个月前
题解:P14063 [PO Final 2022] 海滩 / Badstrand
思路:
我们考虑先做一遍前缀和,再枚举左端点 ,二分出最大满足条件的右端点 ,最后统计再大的区间大小并输出即可。
AC Code:
CPP#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int a[N],n,k,ans;
int main(){
cin>>n>>k;
for(int i=1;i<=n;i++) {
cin>>a[i];
a[i]+=a[i-1];
}
for(int i=0;i<=n;i++){
int l=i,r=n,res=0;
while(l<=r){
int mid=(l+r)/2;
if(a[mid]-a[i]<=k){
res=mid;
l=mid+1;
}else r=mid-1;
}
ans=max(ans,res-i);
}
cout<<ans;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...