【POJ】1064

来源:互联网 发布:centos 7 ftp服务器 编辑:程序博客网 时间:2024/05/17 22:39

http://poj.org/problem?id=1064

有N条绳子,他们的长度分别为Li,如果从它们中切割出k条长度相同的绳子的话,这K条绳子每条能有多长?

假定一个解然后判断是否可行。

注意输出,保留2位小数并不进位。

#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <queue>#include <algorithm>using namespace std;int n,k;double L[100005];bool ok(double x){    int num=0;    for (int i=0;i<=n;i++){        num+=(int)(L[i]/x);    }    return num>=k;}int main(){    cin >> n >> k;    for (int i=0;i<n;i++){        cin >> L[i];    }    double l=0,r=10000005;    while (r-l>1e-5){        double mid=(l+r)/2;        if (ok(mid)) l=mid;        else r=mid;    }    printf("%.2lf",(floor)(r*100)/100);     //保留2位小数并不进位}