poj 1064 Cable master

这篇博客介绍了如何解决POJ 1064 Cable master问题,即如何找到一系列电缆能截成等长且至少K份的最大长度。通过二分法枚举可能的长度,并解决精度问题,例如使用ROUND_DOWN函数处理浮点数。博客中还提到了一些测试数据和编程语言选择(C++ vs G++)对结果的影响。
摘要由CSDN通过智能技术生成
/*
 *  poj 1064 Cable master

    题目大意:
        给定一系列长度的电缆,需要截取成等长的K份,求所能截取的最大长度值。

    解题思路:
        1、二分法枚举所有可能的长度,求得最大长度值 -- 所谓可能长度,即该长度能够产生多于或等于K份


    数学模型: 
        该题之所以可以采用二分法枚举,在于所能产生的电缆份数随长度的递增而单调非增,即有如下

        f(x)表示长度为x时产生的份数,f(x)随x的变化单调非增。 -- 所有单调模型均可采用二分枚举! 

    注意:
        本题WA的主要原因是精度问题,看discuss有人说输入数据+0.005即可满足AC条件,试了一下果然
        BT测试数据:

        4 2540
        8.02
        7.43
        4.57
        5.39

        =>0.01

        4 2542
        8.02
        7.43
        4.57
        5.39

        =>0.00
        
        另: 解决精度问题,也可以将输入数据乘以100换算成整数进行计算。

        2 2
        1.02
        2.33

        => 1.16 // 并没有说一定要把所有的电缆都用上,哎,这里WA了N次

        另外,POJ上提交的时候采用C++可以AC,但是用G++就会WA,日!
*/

#include <iostream>
#include <cstdio>
#include <cstdl
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值