二分答案 浮点数高精模板
double l = 0, r = inf, mid;
while (r - l > 0.001)
{
mid = (l + r) / 2.0;
int c = 0;
for (int i = 0; i < n; i++)
{
c += int(arr[i] / mid);
}
if (c >= k)
l = mid;
else
r = mid;
}
double l = 0, r = inf, mid;
while (r - l > 0.001)
{
mid = (l + r) / 2.0;
int c = 0;
for (int i = 0; i < n; i++)
{
c += int(arr[i] / mid);
}
if (c >= k)
l = mid;
else
r = mid;
}