poj-1064Cable master(二分)

来源:互联网 发布:ga域名 编辑:程序博客网 时间:2024/05/17 22:18

题意:

给你一些缆线,把这些缆线分成等长的m段,长度尽量大(c++过)

#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;int n,k;double a[10005];bool greedy(double x){    int count = 0;    for(int i = 0;i < n;i++)    {        int ret = a[i]/x;        count += ret;        if(count >= k) return true;    }    return false;}void search(double l,double r){    while(r - l > 1e-6)    {        double mid = ( l + r )/2;        if(greedy(mid)) l = mid;        else r = mid;    }    r = r*100;    int ans = r;    printf("%.2lf\n",ans*0.01);}int main(){    while(~scanf("%d%d",&n,&k))    {        double max = 0;        for(int i = 0;i < n;i++)        {            scanf("%lf",&a[i]);            if(max < a[i]) max = a[i];        }            search(0,max);    }}



0 0
原创粉丝点击