输出的始终是答案的2倍或4倍,蒟蒻求助
  • 板块P2440 木材加工
  • 楼主ngmhhy
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/2/29 17:06
  • 上次更新2024/2/29 20:21:06
查看原帖
输出的始终是答案的2倍或4倍,蒟蒻求助
941811
ngmhhy楼主2024/2/29 17:06
using namespace std;

int cut(int a);
bool f(int lo);
int n,k,l,wood[100005];
int main(){
	scanf("%d%d",&n,&k);
	for(int i=1;i<=n;i++){
		scanf("%d",&wood[i]);
	}
	sort(wood+1,wood+n);
	printf("%d",cut(wood[n]));
} 
int cut(int a){
	int l=0,r=a+1;
	while(l+1<r){
		int mid=(l+r)/2;
		if(f(mid))   l=mid;
		else   r=mid;
		return l;
	}
}
bool f(int lo){
	int num=0;
	for(int i=1;i<=n;i++){
		num+=wood[i]/lo;
	}
	if(num>=l)    return true;
	else    return false;
}
2024/2/29 17:06
加载中...