社区讨论

求纠错,拜托了,大佬们

P1577切绳子参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mi6lsywd
此快照首次捕获于
2025/11/20 06:58
4 个月前
此快照最后确认于
2025/11/20 06:58
4 个月前
查看原帖
CPP
#include<iostream>
#include<cstdio>
using namespace std;
typedef long long ll; 
typedef double db;   
ll n,k;
ll i;
db a[10000];
ll sum=0;
ll sum2=0;
db eps=0.00001;
int main(){
    scanf("%lld %lld",&n,&k);
    for(i=0;i<n;++i){
        scanf("%lf",&a[i]);
        a[i]*=100;
        sum2+=a[i];
    }
    ll l=0,r=sum2;
    ll mid;
    ll max=0;
    while(l-r>eps){
        mid=(l+r)/2;
        sum=0;
        for(i=0;i<n;++i) 
            sum+=a[i]/mid;
        if(sum-k>eps){
            r=mid;
        }
        else{
            l=mid+1;
            if(mid-max<eps) 
                max=mid;
        }
    }
    printf("%.2f",max/100.0);
    return 0;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...