POJ 1064 Cable master | 二分+精度

Posted MSPqwq

tags:

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

题目:

给n个长度为l[i](浮点数)的绳子,要分成k份相同长度的

问最多多长


 

题解:

二分长度,控制循环次数来控制精度,输出也要控制精度<wa了好多次>

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#define N 10010
using namespace std;
double L[N],l,r,mid;
long long n,k;
//yjjsb
bool check(double lim)
{
    int ret=0;
    for (int i=1;i<=n;i++)
	ret+=int(floor(L[i]/lim));
    return ret>=k;
}
int main()
{
    scanf("%lld%lld",&n,&k);
    for (int i=1;i<=n;i++)
	scanf("%lf",&L[i]),r+=2*L[i];
    for (int i=1;i<=100;i++)
    {
	mid=(l+r)/2;
	if (check(mid)) l=mid;
	else r=mid;
    }
    printf("%.2f",floor(r*100)/100);
    return 0;
}

 

以上是关于POJ 1064 Cable master | 二分+精度的主要内容,如果未能解决你的问题,请参考以下文章

POJ 1064 Cable master 二分

poj 1064 Cable master 二分

POJ 1064 Cable master (二分答案)

POJ 1064 Cable master

poj 1064 Cable master

poj1064 Cable master