84pts求助
查看原帖
84pts求助
231543
bloodstalk楼主2022/4/10 21:33

也*100最后在/100了,不知道咋改了

#include<bits/stdc++.h>
using namespace std;
 
int n;
int k;
double a[10001];
double sum;
double cor=-1e9;
int pd(double x)
{
	int ans=0;
	for(int i=1;i<=n;i++)
		ans=ans+a[i]/x;
	if(ans>=k) cor=max(cor,x);  
	return ans;
}
void killerqueen(double a, double b)
{
	if(b-a<1e-12) return ;
	double mid=(a+b)/2.0;
	if(pd(mid)>=k) killerqueen(mid,sum);
	else killerqueen(a,mid-1);	
}
int main()
{
	cin>>n>>k;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		sum=sum+a[i]*100;
		a[i]*=100;
	}
	sum=sum/k*1.0;
	killerqueen(0,sum);
	if(cor == 1e-9) cout<<"0.00";
	else printf("%.2lf",cor/100*1.0);
	return 0;	
}
2022/4/10 21:33
加载中...