蒟蒻求助大佬一道题
  • 板块学术版
  • 楼主huangwei14
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/8/6 16:03
  • 上次更新2024/8/6 16:18:54
查看原帖
蒟蒻求助大佬一道题
993389
huangwei14楼主2024/8/6 16:03

题目点这里
我写了二分答案,但wa了,不知道哪里错了,求助大佬们。
代码如下:

#include<bits/stdc++.h>
using namespace std;
int arr[100010];
int n,m,k;
long long ans2=0;
bool check(int x){
	long long now=0,box=1,sum=0;
	for(int i=x;i<=n;i++){
		if(arr[i]<=(k-now)){
			sum++;
			now+=arr[i];
		}else{
			if(box<m){
				box++;
				now=0;
			}else{
				break;
			}
		}
	}
	if(sum>=ans2){
		ans2=sum;
		return true;
	}else{
		return false;
	}
}
int main(){
	cin>>n>>m>>k;
	for(int i=1;i<=n;i++){
		cin>>arr[i];
	}
	int l=1,r=n,ans=r;
	while(l<r){
		int mid=(l+r)/2;
		if(!check(mid)){
			l=mid+1;
		}else{
			r=mid-1;
			ans=mid;
		}
	}
	cout<<ans2;
	return 0;
}
2024/8/6 16:03
加载中...