POJ8209求调
  • 板块题目总版
  • 楼主FreeEvil767
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/15 14:19
  • 上次更新2024/7/15 15:05:20
查看原帖
POJ8209求调
903834
FreeEvil767楼主2024/7/15 14:19

http://noi.openjudge.cn/ch0111/06/

就是测不过,网上的标程也不能过,求救!

#include <bits/stdc++.h>
#define int long long
using namespace std;
int n,m,x[100009],l,r,ans,l0;
bool judge(int mid){
	if (mid<l0) return false;
	int cnt=0,pre=0;
	for (int i=1;i<=n;++i){
        pre+=x[i];
        if (pre>mid) ++cnt,pre=x[i];
	}
	if (cnt>m) return false;
	else return true;
}
signed main(){
	cin>>n>>m;for (int i=1;i<=n;++i) cin>>x[i],r+=x[i];l=l0=*max_element(x+1,x+n+1);
	while (l<r){
		int mid=(l+r)/2;
		if (judge(mid)) r=mid,ans=mid;
		else l=mid+1;
	}
	while (judge(ans-1)) --ans;
	printf("%lld",ans);
	return 0;
}
2024/7/15 14:19
加载中...