77分求助!
查看原帖
77分求助!
890929
yiban202241040105楼主2024/1/20 12:56
#include<bits/stdc++.h>
const int N = 1e8;
#define read(a) {char c;while((c=getchar())>47) a=a*10+(c^48);}
typedef  long long ll;
using namespace std;
int n, m, t;
int a, b, c;
double g[N];
int dp[N];
int judged(double x)
{
	int k = 0;
	for (int i = 0; i < n; i++)
	{
		k +=floor(g[i] / x);
	}
	return k >= m;
}
int main()
{
	cin >> n >> m;
	double mx=0;
	for (int i = 0; i < n; i++)
	{
		cin >> g[i];
		mx = g[i]> mx?g[i]:mx;
	}
	double l = 0, r = mx, mid;
	while (r - l > 1e-4)
	{
		mid = (l + r) / 2;
		if (judged(mid))
		{
			l = mid;
		}
		else
		{
			r = mid;
		}
	}
	printf("%.2lf", l);
	return 0;
}

最后两个点没过

2024/1/20 12:56
加载中...