poj 1064 Cable master

Posted 罚时自动机

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了poj 1064 Cable master相关的知识,希望对你有一定的参考价值。

题意:给n段绳子,长度分别为c1,c2.....,切成相等的k段,求最大的长度

分析:二分长度,唯一注意的一点,输出的时候的精度

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
const int maxn=1e4+5;
const double esp=1e-9;
double c[maxn];
int n,k;

bool judge(double mid){
    int cnt=0;
    for(int i=0;i<n;i++)
      cnt+=(int)(c[i]/mid);
    return cnt>=k;
}

int main(){
    while(~scanf("%d%d",&n,&k)){
        double l=0,r=0;
        for(int i=0;i<n;i++){
            scanf("%lf",c+i);
            r+=c[i];
        }
        r/=k;
        while(r-l>esp){
            double mid=(l+r)/2;
            if(judge(mid))
              l=mid;
            else
              r=mid;
        }
        r=floor(r*100)/100;
        printf("%.2f\\n",r);
    }
    return 0;
}
View Code

 

以上是关于poj 1064 Cable master的主要内容,如果未能解决你的问题,请参考以下文章

POJ 1064 Cable master (二分)

POJ 1064 Cable master

Cable master(POJ 1064)

POJ 1064 Cable master (二分答案)

POJ 1064 Cable master

poj 1064 Cable master