1.根据二分找出符合长度的绳子。
2.用二分求最大值。
3.因为结果保留两位小数,用1e-4;
4.判断用浮点数二分还是整数二分看到达男的结果。
#include <iostream>
using namespace std;
const int N=1e5+10;
int w[N];
int n,m;
bool check(double mid){
int res=0;
for(int i=0;i<n;i++){
res+=w[i]/mid;
}
return res>=m;
}
int main(){
cin>>n>>m;
for(int i=0;i<n;i++)cin>>w[i];
double l=0,r=1e9;
while(r-l>1e-4){
double mid=(l+r)/2;
if(check(mid))l=mid;
else r=mid;
}
printf("%.2f",r);
return 0;
}