c++木材切割
发布日期:2022-03-03 02:49:14 浏览次数:1 分类:技术文章

本文共 807 字,大约阅读时间需要 2 分钟。

小明家装修,买了n张兔宝宝的生态板,现在想把这些生态板切割成k段长度均为l的小段板材(购买的生态板有可能有剩余)。

木工师傅希望得到的板材越长越好,请求出l的最大值
生态板的长度单位是 cm,板材的长度都是正整数,我们要求切割得到的小段板材的长度也是正整数。
例如有两根原木长度分别为 11 和 21,要求切割成等长的 6 段,很明显能切割出来的小段木头长度最长为 5。

输入格式:

第一行是两个正整数 n,k 分别表示生态板的数量,需要得到的小段板材的数量。

接下来 n 行,每行一个正整数 L ,表示一张生态板的长度。

输出格式:

仅一行,即 l 的最大值。

如果连1cm 长的小段木材都切不出来,输出 0。

限制:

空间限制:128MByte

时间限制:1秒

样例:

输入:

3 7

232

124

456

输出:

114

提示:

数据范围:

对于 100% 的数据,有 1≤ n ≤ 10^4 , 1≤ k ≤ 10^8 , 1 ≤ Li ≤ 10^8 (i∈[1,n])。

这一题可以用二分答案来做

二分答案

和二分差不多,举个简单的例子:

我想一个数字,让你来猜,上限1000。你可以猜500,然后我告诉你多了还是少了,多了就选250,少了就选750,一次次类推,最后得出的结果就是。

代码:

#include 
#include
#include
#define INF 0x3f3f3f3flong long N,K;const int maxn = 1e6+10;double L[maxn];bool C(double x){ int num=0; for(int i=0; i
=K;}int main(){ scanf("%lld %lld",&N,&K); for(int i=0; i

转载地址:https://blog.csdn.net/jhfhfhu/article/details/122515784 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:2021合肥市赛
下一篇:c++贪心详解

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月17日 04时27分28秒