社区讨论
wa#4求条
P1182数列分段 Section II参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mhj0g6th
- 此快照首次捕获于
- 2025/11/03 18:42 4 个月前
- 此快照最后确认于
- 2025/11/03 18:42 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
const int N = 1e5 + 10;
int a[N];
int n,k;
bool pd(int m){
int cnt = 0;
int p = 0;
for(int i = 1;i <= n;i ++){
if(a[i] + p <= m)p += a[i];
else p = a[i],cnt ++;
}
return cnt >= k;
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin >> n >> k;
int sum = 0;
int ma = -1;
for(int i = 1;i <= n;i ++){
cin >> a[i];
sum += a[i];
ma = max(ma,a[i]);
}
int l = ma,r = sum;
while(l + 1 < r){
int m = l + r >> 1;
if(pd(m))l = m;
else r = m;
}
cout << r << endl;
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...