一道水题的求助
  • 板块灌水区
  • 楼主Kelier_pkl
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/9/3 09:10
  • 上次更新2023/10/27 12:45:34
查看原帖
一道水题的求助
617667
Kelier_pkl楼主2022/9/3 09:10

求助各位巨佬:

题目:P1182 数列分段 Section II

问题所在:第四个点

代码:

//the code is from pkl
#include <bits/stdc++.h>
using namespace std;
#define MAXN 100005
int n,m;
int a[MAXN];
int check(int x){
	int now=0,cnt=1;
	for(int i=1;i<=n;i++){
		if(now+a[i]<=x){
			now+=a[i];
		}
		else{
			now=a[i];
			cnt++;
		}
	}
	return cnt<=m;
}
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++){
		scanf("%d",&a[i]); 
	}
	int l=1,r=2e9;
	while(l<r){
		int mid=(l+r)>>1;
//		printf("%d %d\n",mid,check(mid));
		if(check(mid)){
			r=mid;
		}
		else{
			l=mid+1;
		}
	}
	printf("%d",l);
}
2022/9/3 09:10
加载中...