60分代码求大佬debug
查看原帖
60分代码求大佬debug
817393
XiChen_FF楼主2024/5/5 11:47
//P1182
#include <bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int n,pnum;
int num[N];
int dev(int s){
	int cnt=0,sum=0;
	for(int i=1;i<=n;i++){
		if(sum+num[i]>s){
			cnt++;
			sum=num[i];
		}else{
			sum+=num[i];
		}
	}
	return cnt+1;
}
int main(){
	cin>>n>>pnum;
	long long NumSum=0;
	int MaxNum=-1;
	for(int i=1;i<=n;i++){
		cin>>num[i];
		NumSum+=num[i];
		MaxNum=max(MaxNum,num[i]);
	}
	
	//对答案(每段和)进行二分  区间:MaxNum-NumSum 
	
	long long l=MaxNum,r=NumSum,p;
	//cout<<dev(8);
//	/*
	while(l<=r){
		long long mid=l+(r-l)/2;
		int t=dev(mid);
		//cout<<mid<<" "<<t<<endl;
		if(t==pnum){
			p=mid;
			r=mid-1;
		}else if(t>pnum){
		//	p=mid;
			l=mid+1;
		}else{
			r=mid-1;
		}		
	}
	cout<<p;
//	*/
	return 0;
}

60分代码求调

2024/5/5 11:47
加载中...