专栏文章
5.24 二分答案2
个人记录参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mip7osvr
- 此快照首次捕获于
- 2025/12/03 07:31 3 个月前
- 此快照最后确认于
- 2025/12/03 07:31 3 个月前
课堂练习
U564349 限时秒杀
题意:。。。。。
单调性分析:什么越大,什么什么就越大。
CPP单调性分析:什么越大,什么什么就越大。
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,a[10000001],l,r;
// 这个函数是干什么的
bool check(int x){
int sum=0,ans=0; //
for(int i=1;i<=n;i++){
if(sum+a[i]<=x) sum+=a[i];
else{
ans++;
sum=a[i];
}
}
if(sum!=0) return ans+1<=m;
else return ans<=m;
}
signed main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
l=max(l,a[i]);
r+=a[i];
}
l=l-1,r=r+1; // 为什么要初始化为这个
while(l+1<r){
int mid=(l+r)/2;
if(check(mid)) r=mid; // 为什么要r=mid
else l=mid;
}
cout<<r; //为什么要输出r
return 0;
}
家庭作业
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...