社区讨论
80求调!WAon#4 玄关
P1182数列分段 Section II参与者 7已保存回复 19
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 19 条
- 当前快照
- 1 份
- 快照标识符
- @mhj1xpxa
- 此快照首次捕获于
- 2025/11/03 19:23 4 个月前
- 此快照最后确认于
- 2025/11/03 20:36 4 个月前
mid是否大于a[i]也判了TAT
CPP#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e5 + 5;
int n,m,a[N],ans,mx,sum;
bool check(int x){
int cnt=0,tot=0;
for(int i=1;i<=n;i++){
if(tot+a[i]>x){
cnt++;
tot=a[i];
}else{
tot+=a[i];
}
if(a[i]>x){
return 0;
}
}
return cnt>=m;
}
signed main() {
freopen("jkp.in","r",stdin);
freopen("jkp.out","w",stdout);
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
mx=max(mx,a[i]);
sum+=a[i];
}
int l=mx,r=sum;
while(l<=r){
int mid=(l+r)/2;
if(check(mid)){
l=mid+1;
ans=l;
}else{
r=mid-1;
}
}
cout<<ans<<"\n";
return 0;
}
回复
共 19 条回复,欢迎继续交流。
正在加载回复...