POJ 1064 Cable master

来源:互联网 发布:《java开发实战经典》 编辑:程序博客网 时间:2024/06/06 17:25

经典二分

AC代码:

#include <iostream>#include <cstdio>  #include <cstring>  #include <cstdlib>#include <cmath>#include <algorithm>  using namespace std;  int n, k;double a[10005]; bool judge(double x){    int cnt = 0;    for(int i = 0; i < n; i++){        cnt += (int)(a[i]/x);        if(cnt >= k)  return true;    }    return false;}int main(){    scanf("%d %d", &n, &k);    double maxa = 0;    for(int i = 0; i < n; i++){        scanf("%lf", &a[i]);        maxa = max(maxa, a[i]);    }    double lb = 0, ub = maxa;    for(int i = 0; i < 100; i++){        double mid = (ub + lb)/2.0;        if(judge(mid))  lb = mid;        else ub = mid;    }    printf("%.2f", floor(ub*100)/100);    return 0;}
1 0
原创粉丝点击