二分解法0分求条
查看原帖
二分解法0分求条
1073342
Genshin_ZFYX楼主2024/6/30 21:08

code:

#include<bits/stdc++.h>
using namespace std;
//#define int long long
#define I return
#define love 0
#define FIRESTARS ;
int a[1005],f[1005],n;
bool check(double x)
{
	memset(f,0,sizeof(f));
	for(int i=1;ceil(i*x)-1<=a[n];i++)
	{
		int t=ceil(i*x)-1;
		f[t]=1;
	}
	for(int i=1;i<=n;i++)
	if(!f[a[i]])return false;
	return true;
}
double find(double l,double r)
{
	double mid;
	while(l+1e-7<r)
	{
		mid=l+(r-l)/2;
		if(check(mid))l=mid;
		else r=mid;
	}
	return l;
}
signed main()
{
    cin.tie(0)->sync_with_stdio(0);
    cin>>n;
    double sum=0;
    for(int i=1;i<=n;i++)
    cin>>a[i],sum+=a[i];
    sort(a+1,a+1+n);
    printf("%.7lf",find(1.0,sum));
	I love FIRESTARS
}
2024/6/30 21:08
加载中...