首页 > 其他 > 详细

POJ 1064 Cable master | 二分+精度

时间:2017-12-14 11:29:32      阅读:135      评论:0      收藏:0      [点我收藏+]

题目:

给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 | 二分+精度

原文:http://www.cnblogs.com/mrsheep/p/8036683.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!