文章目录

  • 题目描述
  • 题解:
  • 代码:
  • 推荐例题:

试题链接

时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld

题目描述

二月中旬虐狗节前夕,华华决定给月月准备一份礼物。为了搭建礼物的底座,华华需要若干根同样长的木棍。华华手头上有一些长度参差不齐的木棍,他想将每根都裁剪成若干段自己想要的长度,并丢掉多余的部分。因为华华的手很巧,所以他的裁剪过程不会有任何的失误。也就是说,对于一根长度为N的木棍,华华可以精准的将它们裁剪为若干段木棍,使它们的长度之和为N。
华华不知道裁剪成多长比较好,所以干脆越长越好。不过由于华华有点强迫症,所以他希望长度为非负整数。保证所有木棍的原长也是非负整数。那么请问华华最终得到的每根木棍多长呢?
输入描述:

第一行两个正整数N、K,表示木棍原本的根数和华华希望得到的木棍根数。 第二行N个正整数Li表示每根木棍的初始长度。

输出描述:

输出一行一个非负整数表示每根木棍的最大长度。

示例1
输入

5 10
4 4 4 5 3

输出

1

说明

如果长度为2,只能得到2+2+2+2+1=9根,不够;长度为1可以得到4+4+4+5+3=20根,足够。所以答案最大是1。

示例2
输入

5 3
1 2 3 4 5

输出

3

备注:

题解:

二分的模板题吧
我们假设最后结果是ans,那么小于等于ans的答案都是符合条件的(只是不是最大),而大于ans的肯定不行,那ans怎么确定呢?
这里就用到二分,一开始左界left=1,右界right=最长的木棍长度(也可以初始值为1e9+1,因为木棍再长也不可能大于1e9),然后去这段区间的中间值mid,然后判断mid是否符合条件,如果符合条件,说明mid左边的都可以,右边的不一定,右边有可能还有更优的答案,也可以没有,所以left=mid+1,开始探索mid右边的未知区域。但如果不符合条件,说明当前mid右边更不符合,只有左边才存在符合条件,right=mid-1,探索左边区域,一直这样二分找到最佳答案

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=2e5+4;
ll l[maxn];
int n,k;ll sum;
ll check(ll len)
{sum=0;for(int i=1;i<=n;i++)sum+=l[i]/len;return sum;
}
int main()
{cin>>n>>k;for(int i=1;i<=n;i++)cin>>l[i];ll ans=0;ll left=1,right=1e9+1,mid;while(left<=right){mid=(left+right)>>1;if(check(mid)>=k){left=mid+1;ans=mid;}else {right=mid-1;}}cout<<ans;return 0;
}

推荐例题:

NC16462 跳石头
noip day2 T1题目,也是经典的二分题目,刚学二分的可以练练手

牛客网【每日一题】4月17日题目精讲 华华给月月准备礼物相关推荐

  1. 牛客网 每日一题 7月23日题目精讲—wpy的请求

    来源:牛客网: 文章目录 wpy的请求 题解: 代码: wpy的请求 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K Special Judge ...

  2. 【每日一题】7月17日题目精讲—BOWL 碗的叠放

    [每日一题]7月17日题目精讲-BOWL 碗的叠放 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld ...

  3. 【每日一题】8月17日题目精讲-[SCOI2009]生日礼物

    来源:牛客网: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 小西有一条很长的彩带,彩带 ...

  4. 【牛客每日一题】tokitsukaze and Soldier 题目精讲 贪心、优先队列、堆

    链接:https://ac.nowcoder.com/acm/problem/50439 来源:牛客网 ACM在线模板 今天才发现牛客推出了一个每日一题的版块,3月25号就开始了,今天才发现,赶紧补救 ...

  5. 【每日一题】8月28日题目精讲 编号

    [每日一题]8月28日题目精讲 编号 链接:https://ac.nowcoder.com/acm/problem/19925 来源:牛客网 题目描述 你需要给一批商品编号,其中每个编号都是一个7位1 ...

  6. 【每日一题】7月15日题目精讲—生日快乐

    [每日一题]7月15日题目精讲-生日快乐 [SCOI2009]生日快乐 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO For ...

  7. 【每日一题】7月13日题目精讲—Kingdom

    [每日一题]7月13日题目精讲-Kingdom 文章目录 题目描述 题解: 代码: 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 1048576K,其他语言2097152K 64bi ...

  8. 牛客网【每日一题】4月14日题目精讲 Xorto

    文章目录 题目描述 题解: 代码: 扩展 传送 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format:%lld 题目描述 ...

  9. 牛客网 【每日一题】8月5日题目精讲—蓝魔法师

    来源:牛客网: 文章目录 题目描述 题解: 代码: 题目描述 "你,你认错人了.我真的,真的不是食人魔."–蓝魔法师 给出一棵树,求有多少种删边方案,使得删后的图每个连通块大小小于 ...

最新文章

  1. java串口发送16进制_串口发送数据——字符串发送与十六进制发送的区别
  2. SFTP命令基本使用
  3. [USACO1.4]等差数列 Arithmetic Progressions
  4. java xml 节点换行_Winform中对xml文件进行保存时空白节点自动换行问题的解决
  5. ios常用数据库、完美无缺
  6. 如何让Element UI的Message消息提示每次只弹出一个
  7. jquery选中以什么开头的元素
  8. 《C语言深度解剖》学习笔记之内存管理
  9. python socket tcp实战_python socket 实战
  10. Bootstrap modal使用及点击外部不消失的解决方法
  11. Android 图片混排富文本编辑器控件
  12. linux之移动或重命名文件:mv
  13. asp net服务器虚拟路径,asp.net获取服务器虚拟路径
  14. SOA,RMI,RPC,SOAP,REST等名称的理解
  15. 网易2018校招内推编程题 小易喜欢的数列
  16. C#将图片转为二进制流
  17. Hive - 内表和外表的区别
  18. 容斥原理解决某个区间[1,n]闭区间与m互质数数量问题
  19. 网址在QQ微信被拦截怎么办 微信屏蔽网址解决办法
  20. 汉斯123法则在沪深300指数期货回测

热门文章

  1. 数学特级老师:数学除了做习题,这份140G的资料一定要收藏!
  2. 兵马未至,数据先行,且看如何进行数据挖掘!
  3. 数据挖掘技术在信用卡业务中的应用及实例分析
  4. mysql dw解决方案_MySQL 的 DW 解决方案(MySQL + Infobright)
  5. 计算机游戏50关,YELLOW游戏全50关攻略
  6. linux mint 用户管理,Linux Mint 新工具:将网站转变为独立的应用
  7. 二面京东,面试官直接问我JVM,我心里一阵暗爽~
  8. java如何用键盘输入_java中如何从键盘输入(附代码)
  9. adf盖怎么打开_罐头好吃盖难开,学会这几招,再不靠蛮力了,女生也轻松拧开...
  10. java io操作_Java 的IO操作(文件的读,写操作)