第4点 wa 求助
查看原帖
第4点 wa 求助
1247656
shy111楼主2024/4/2 22:46

代码如下

#include<bits/stdc++.h>
using namespace std;
const int N=2e6+10;
long long n,m;
long long a[10*N];
bool check(long long mid){
	long long num=1,sum=0;
	for(int i=1;i<=n;i++){
		if(sum+a[i]<=mid){
			sum+=a[i];
		}
		else{
			num++;
			sum=a[i];
		}
	}
	//cout<<num<<endl;
	if(num>m){
		return 0;
	}
	else if(num<=m){
		return 1;
	}
}
long long erfen1(){
	long long l=1;
	long long r=0x3f3f3f3f3f3f3f3f;
	while(l<r){
		long long mid=(l+r)/2;
		if(check(mid)){
			r=mid;
		}
		else{
			l=mid+1;
		}
	}
	return r;
}

int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	long long ans;
	ans=erfen1();
	cout<<ans;
	return 0;
}

求助各位大佬

2024/4/2 22:46
加载中...