有一些衣服,每件衣服有一定水量,有一个烘干机,每次可以烘一件衣服,每分钟可以烘掉k滴水。每件衣服没分钟可以自动蒸发掉一滴水,用烘干机烘衣服时不蒸发。问最少需要多少时间能烘干所有的衣服。
要知道如果想要晾干衣服的话,最好的方法就是使用机器冲干x1秒,然后等待风干x2秒。我们来二分答案mid,表示能在mid秒钟晒干。
机器烘干需要x1秒钟,自然烘干需要mid-x1秒钟,得到如下公式x1*k+(mid-x1) >= a[i]所以:x >= (a[i] – mid) / (k – 1)。
当k==1的时候,除数为0 单独讨论
1 | //二分一个答案,然后判断可行性 |
补充
double ceil (double x);
ceil返回不小于value 的下一个整数,value 如果有小数部分则进一位。ceil() 返回的类型仍然是float,因为float 值的范围通常比integer 要小。