求调!
  • 板块学术版
  • 楼主guoziyu_2023CSP
  • 当前回复11
  • 已保存回复11
  • 发布时间2023/10/11 20:39
  • 上次更新2023/11/2 14:25:07
查看原帖
求调!
619848
guoziyu_2023CSP楼主2023/10/11 20:39

题目描述

小明有 nn根木棍,第 ii根木棍的长度为LiL_i。现在想要切出 kk 根长度一样的木棍,每一根最长是多少呢?

输入

输入第一行一个整数nn。

第二行 nn个整数 LiL_i。

第三行一个整数 kk。

输出

输出一行一个实数,表示要切出 kk 根长度一样的木棍,每一根木棍最长的长度。相对误差或绝对误差不超过 1010的−9-9次方就算正确。

为什么TLE啊啊啊!(此题十分像P1577 切绳子,但精度不同)

代码:

#include<bits/stdc++.h>
using namespace std;
const int N = 2 * 1e5 + 10;
int n,k; double a[N],l,r,mid;
bool check(double x){
    int tot = 0;
    for(int i = 1;i <= n;i++){
    	tot += floor(a[i] / x);
	}
    return tot >= k;
}
int main(){
    cin >> n;
    for(int i = 1;i <= n;i++){
        cin >> a[i];
        r = r + a[i];
    }
    cin >> k;
    while(r - l > 1e-9){
        mid = (l + r) / 2;
        if(check(mid)) l = mid;
        else r = mid;
    }
    printf("%.9lf",mid);
    return 0;    
}

为什么TLE啊啊啊!

2023/10/11 20:39
加载中...