首页 > 其他 > 详细

Cable master (POJ No.1064)

时间:2014-05-17 00:09:06      阅读:406      评论:0      收藏:0      [点我收藏+]
 bubuko.com,布布扣
bubuko.com,布布扣
二分搜索思想:bool C(double x)可以得到长度为x的绳子
bubuko.com,布布扣
//#define LOCAL
#include<stdio.h>
#include<math.h>
int const MAX_N=10005;
int const MAX_M=100;
double const INF=100000000;
int N,K;
double d[MAX_N],lb,ub;
//判断是否满足条件
bool C(double x)//假设截得的每段长度为x,则所有绳子中能不能截成K段 
{    
    int sum=0;
    for(int i=0;i<N;i++)
    { 
        sum=sum+(int)(d[i]/x);
    } 
    return sum>=K;
} 
void solve()
{
    for(int i=0;i<N;i++)
    {
        scanf("%lf",&d[i]);
    }
    lb=0.0,ub=INF;
    for(int i=0;i<MAX_M;i++)
    {
        double mid=(lb+ub)/2;
        if(C(mid))//如果能截,往上搜让mid变大一些,看行不行 
            lb=mid; 
        else ub=mid;//如果不能截往下搜(找最近能截的点) 
    }
    printf("%.2f\n",floor(ub*100)/100);
}
int main()
{
#ifdef LOCAL
    freopen("Cable master.in","r",stdin);    
    freopen("Cable master.out","w",stdout);
#endif
    while(~scanf("%d%d",&N,&K))
    {
        solve();
    }
    return 0;
}
bubuko.com,布布扣

 ==>此处注意,如果把i设置成全局变量,注意每个函数对i的操作都会更改i的值

 
 
 
 
 

Cable master (POJ No.1064),布布扣,bubuko.com

Cable master (POJ No.1064)

原文:http://www.cnblogs.com/jianfengyun/p/3724954.html

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