77tps求助
  • 板块P1577 切绳子
  • 楼主Flying_hp
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/8/3 11:12
  • 上次更新2024/8/3 12:47:30
查看原帖
77tps求助
1123665
Flying_hp楼主2024/8/3 11:12
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,k;
double ans;
double a[100010],maxx;
bool check(ll mid){
	ll ans=0;
	for(ll i=1;i<=n;i++){
		ans+=floor(a[i]/mid);
	}
	return ans>=k;
}
bool check2(double mid){
	ll ans=0;
	for(ll i=1;i<=n;i++){
		ans+=floor(a[i]/mid);
	}
	return ans>=k;
}
ll binary(){
	ll l=1,r=100000;
	while(l<r){
		ll mid=(l+r+1)/2;
		if(check(mid))l=mid;
		else r=mid-1;
	}
	return l;
}//right 
signed main(){
	cout.fixed;
	cout<<setiosflags(ios::fixed)<<setprecision(2);
	cin>>n>>k;
	for(ll i=1;i<=n;i++){
		cin>>a[i];
		maxx=max(maxx,a[i]);
	}
	double p=binary();
	for(double i=p;i<=p+0.99;i+=0.001){
		if(check2(i)){
			ans=i;
		}
		else{
			break;
		}
	}
	cout<<ans;
	return 0;
}

2024/8/3 11:12
加载中...