P2440 求助
  • 板块P2440 木材加工
  • 楼主Bbaka
  • 当前回复1
  • 已保存回复1
  • 发布时间2021/7/13 17:27
  • 上次更新2023/11/4 14:54:22
查看原帖
P2440 求助
138440
Bbaka楼主2021/7/13 17:27
#include <bits/stdc++.h>
#define mid ((l+r)>>1)
using namespace std;
int l,r,n,k;
int D[100009];
inline bool check (int x){
	int res=0;
	for (int i=1;i<=n;++i){
		res+=D[i]/x;
	}
	return res<k; 
}
int main (){
	scanf ("%d %d",&n,&k);
	for (int i=1;i<=n;++i)
		scanf ("%d",&D[i]);
	l=1,r=100000001;
	while (l<=r){
		if (check (mid)){
			r=mid-1;
		}
		else l=mid+1;
	}
	printf ("%d\n",l-1);
	return 0;
}

为什么答案需要减去一

好像题解都不用减的,是二分写法的问题么

2021/7/13 17:27
加载中...