93分求助
查看原帖
93分求助
398152
MinimumSpanningTree最小生成树楼主2022/4/23 21:19

https://www.luogu.com.cn/record/74491262

#include<iostream>
using namespace std;
long long n,a[10100],k,l=1,r,ma,mid,ans;
double a1;
bool cheak(long long len)
{
	long long s=0;
	for(long long i=1;i<=n;i++) s+=a[i]/len;
	return s>=k;
}
int main()
{
	scanf("%lld%lld",&n,&k);
	for(long long i=1;i<=n;i++)
	{
		scanf("%lf",&a1);
		a[i]=(long long)(a1*100);
		//printf("%lld ",a[i]);
		ma=max(ma,a[i]);
	}
	r=ma;
	while(l<r)
	{
		mid=(l+r)/2;
		if(cheak(mid)==true) 
		{
			l=mid+1;
			ans=mid;
		}
		else r=mid-1;
		//printf("%lld %lld %lld %lld\n",mid,l,r);
	}
	printf("%.2lf",ans/100.0);
	return 0;
} 
2022/4/23 21:19
加载中...