首页 > 其他分享 >原木切割二分法

原木切割二分法

时间:2022-12-27 13:01:45浏览次数:50  
标签:num 切割 int 二分法 000 原木 长度 100


题目描述
​ 某林业局现在 N 根原木,长度分别为 Xi,为了便于运输,需要将他们切割成长度相等的 M 根小段原木(只能切割成整数长度,可以有剩余),小段原木的长度越大越好,现求小段原木的最大长度。例如,有 3 根原木长度分别为 6,15,22,现在需要切成 8 段,那么最大长度为 5。

输入
​ 第一行两个整数 N,M。(1≤N≤100,000,1≤M≤100,000,000)
​ 接下来 N 行,每行一个数,表示原木的长度 Xi。(1≤Xi≤100,000,000)

输出
​ 输出小段原木的最大长度, 保证可以切出 M 段。

样例输入
3 8
6
15
22
样例输出
5
数据规模与约定
​ 时间限制:1 s

内存限制:256 M

100% 的数据保证 1≤N≤100,000,1≤M≤100,000,000,1≤Xi≤100,000,000

#include <iostream>
using namespace std;

int main() {
int n, m;
cin >> n >> m;
int max_len = 0;
int num[100005];
for (int i = 0; i < n; i++) {
cin >> num[i];
if (num[i] > max_len)
max_len = num[i];
}
int l = 0, r = max_len;
while (l != r) {
int mid = (l + r + 1) / 2;
int s = 0;
for (int i = 0; i < n; i++) {
s += num[i] / mid;
}
if (s >= m) {
l = mid;
}
else {
r = mid - 1;
}
}
cout << l << endl;
return 0;
}


标签:num,切割,int,二分法,000,原木,长度,100
From: https://blog.51cto.com/u_15923796/5972677

相关文章

  • 【C语言】strtok() - 切割字符串。
    前言在前面的文章 strlen()、strcpy()、strcat()、strcmp() 的四个字符串函数、这四个是最基本也是我们最常用的字符串函数、接下来我们要介绍的可能很多小伙伴比较陌生的......
  • 二分法的写法
    二分法的写法varnums=[1,2,3,4];vartarget=3;//左闭右闭varfind=(nums,target)=>{varl=0;varr=nums.length-1;while(l<=r){varmid=Mat......
  • 日志切割 logrotate
    TOCSre@iddcipl01043:~$cat/etc/.d/nginx/var/log/nginx/*.log{dailymissingokrotate14compressdelaycompres......
  • 二分法搜索算法
    今天看书时,书上提到二分法虽然道理简单,大家一听就明白但是真正能一次性写出别出错的实现还是比较难的,即使给了你充足的时间,比如1小时。如果你不是特别认真的话,可能还是会出......
  • 日志切割: logrotate、python、shell实现
    对于Linux系统安全来说,日志文件是极其重要的工具。不知为何,我发现很多运维同学的服务器上都运行着一些诸如每天切分Nginx日志之类的CRON脚本,大家似乎遗忘了Logrotate,争相发......
  • 二分法
    二分法二分法多用于有序数组,经典的案例是查找一个一个有序数组中是否存在某个数题目1:找出一个有序数组中是否存在某个数?publicstaticbooleanexist(int[]sortedAr......
  • ②. 日志切割logrotate
    1、关于日志切割日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到。对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁......
  • Delfoi CUT 3D切割和精加工工艺离线编程软件丨衡祖仿真
    DelfoiCUT是一款用于3D切割和精加工工艺的离线编程软件,例如水射流切割、等离子切割、激光切割以及机械切割和去毛刺。DelfoiCUT工艺特点●自动检测CAD特征●基于C......
  • Delfoi CUT 3D切割和精加工工艺离线编程软件丨衡祖仿真
    DelfoiCUT是一款用于3D切割和精加工工艺的离线编程软件,例如水射流切割、等离子切割、激光切割以及机械切割和去毛刺。DelfoiCUT工艺特点●自动检测CAD特征●基于......
  • 【LeetCode】二分法--剑指 Offer 53 - I. 在排序数组中查找数字 I
    点击直达题目内容统计一个数字在排序数组中出现的次数。示例示例1:输入:nums=[5,7,7,8,8,10],target=8输出:2示例2:输入:nums=[5,7,7,8,8,10],target......