这道题跟P1873砍树简直一模一样好吧,代码挂上了,可以看一下砍树
//木材加工
#include "iostream"
#include "algorithm"
using namespace std;
int n,k;
int mood[100005];
bool check(int x){
int num=0;
for(int i=1;i<=n;i++){
num+=mood[i]/x;
if(num>=k)return true;
}
return false;
}
int binary(int x,int n){
int l=0,r=n+1;
while(l+1<r){
int mid=(l+r)>>1;
if(check(mid))l=mid;
else r=mid;
}
return l;
}
int main(){
int modmax=0;
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>mood[i];
modmax=max(modmax,mood[i]);
}
sort(mood+1,mood+n+1);
cout<<binary(k,modmax);
}