问题标题: 酷町堂:1292

0
0
已解决
胡景轩
胡景轩
资深守护
资深守护

题目链接: 酷町堂:1292

聪明的卡卡西帮助工人师傅们解决了难题,师傅们为了表示感谢,特别赠送卡卡西一块三角形和一块长方形的两片小木块,并再三叮嘱卡卡西:“卡卡西,这可不是一般的小木块哦,在你迷路或走失时,它们会引领着你到达想去的地方!”“这太神奇了!谢谢!”,卡卡西如获至宝似的将这两块小木块收进包里,整晚都想着下一段奇妙的旅行。早上醒来之后,发现太阳已经高高的挂在空中,小朋友们都不见了,“不好,一定是起的太迟,没跟上大部队,这可怎么办呢?!”卡卡西懊悔的快要哭了,她赶紧站起来,收拾自己的书包,突然,包里的长方形木块和三角形木块飞了出来,组装在一起,形成一个大大的指示箭头,漂浮在空中,“对了,这个箭头一定是在告诉我,如何找到老师和同学”,卡卡西破涕为笑,满心欢喜的跟着箭头,向前方走去。走着走着,她来到了一个原木加工厂,看见老师和小朋友们都围绕在门口,一位工人叔叔正忧心忡忡的坐在地上,不停的抽着烟。卡卡西向前询问情况,这位叔叔说:“这个木材厂主要是把M 根原木切割成N 根长度一样的小段木头,切割时木头可以有剩余,老板让我计算可得到的这N 根小段木头的最大长度(其中原木和小段木头长度都是正整数),可是我不知道该怎么算,你们能帮帮我么?”卡卡西眼前一亮,上前轻轻拍了拍叔叔的肩膀,大声的说:“叔叔,这个你放心,我来帮你完成!”小朋友们,你们能计算出切割的小段木头的最大长度吗?

输入描述 Input De**ion

输入共两行。第一行M、N 用空格分开,分别表示原木数目和需要切割的小段木头数目。接下来一行共M个正整数,分别表示M根原木的长度(中间用空格隔开)。

输出描述 Output De**ion

切割后可得到的N 根小段木头的最大长度。

样例输入 Sample Input

3 7 4 10 26

样例输出 Sample Output

5

数据范围及提示 Data Size & Hint

样例说明:将3 根长度分别是4、10 和26 的原木切割成7 根长度一样的小段木头,这7 根长度一样的小段木头的最大长度是5。
数据范围:0≤M≤100000,0≤N≤100000


0
已采纳
李奕歌
李奕歌
初级天翼
初级天翼

用二分,判断中点是否符合

bool check(long long x){
    long long cnt=0;
    for(int i=1;i<=m;i++){
        cnt+=a[i]/x;
    }
    return cnt>=n;
}

符合就把左点右移至终点否则把右点移至中点-1

最后输出左点

0
丁炳瑜
丁炳瑜
高级光能
高级光能

二分

 

 

 

 

 

 

 

 

 

 

 

 

 

0
我要回答