木棒切割问题(算法笔记p134)

Note:回顾4.5.1 lower_bound 和upper_bound模板,注意上下界问题

给出N根木棒,长度均已知,现在希望通过切割它们来得到至少K段长度相等的木棒(长度必须是整数),问这些长度的木棒最长能有多长。

例如对三根长度分别为10,24,15 的木棒来说,假设 K = 7,即需要至少7段长度相等的木棒,那么可以得到的最大长度为6,在这种情况下,第一根木棒可以提供10/6 = 1段、第二根木棒可以提供24/6 = 4段、第三根木棒可以提供15/6 = 2段,达到了7段的要求。

思路:如果长度相等的木棒的长度L越长,那么可以得到的木棒段数k越少。二分答案,根据对当前长度L来说能得到的木棒段数k与K的大小关系来进行二分。

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;int main(){int N, K, i, num;cin >> N >> K;int *len = new int[N];for(i = 0; i < N; i++)cin >> len[i];sort(len, len + N);//将len数组元素从小到大排列 int left = 0, right = len[N-1], mid;while(left + 1 < right){num = 0;//将当前木段长度可分段数置0 mid = (left + right) / 2;for(i = 0; i < N; i++)num += len[i] / mid;if(num >= K)left = mid;elseright = mid; }cout << right - 1;return 0;}

木棒切割问题(***二分法)相关推荐

  1. 二分法:木棒切割问题

    问题描述: 问题模板: 寻找有序序列第一个满足某条件的元素的位置: (这个条件是从序列左起到右,从不满足条件到开始满足.) //二分区间为左闭右闭的[left,right],初值必须能覆盖解的所有可能 ...

  2. 二分法典例:木棒切割问题

    Input : 输入木棒根数n,要得到的等长木棒数量K,以及n根木棒的长度. Output : 等长木棒的最大长度. 用二分法求解这道题,首先要找到以得到的等长木棒数量为因变量.等长木棒长度为自变量函 ...

  3. 算法笔记知识点整理大全

    每次刷题都觉得自己吃了知识点不全,基础不牢固的亏,刷题的时候目标也不明确,于是看完了算法笔记并把知识点归纳了一下,当然直接看书会更加详细,这个归纳只是学习时加深印象以及方便自己之后回顾而已:之后刷题大 ...

  4. 《算法笔记》——笔记

    算法笔记 胡凡 曾磊 主编 机械工业出版社 文章目录 算法笔记 C/C++快速入门 提醒 memset sscanf与sprintf 引用 浮点数的比较 圆周率 复杂度 黑盒测试 入门篇(1)--入门 ...

  5. 2022年 CSP-J1 CSP-S1 初赛 如何进行复习 如何做题

    第一题 单选题: 这个包含了2018年及以前年份的的单选或不定项选择(提高组 初赛) 以及问题求解题等考点 这一部分建议直接做历年的真题就可以了,至少要做最近的5年真题 做题的顺序:由最近往前做,也就 ...

  6. 【二分法】计蒜客:切割钢管

    n个钢管,能否分为k个1,能否分为k个2,......(用li/ l表示一个钢管最多可以切割为几个长度l的钢管) 问题转换为二分答案 1111...0000: 假设第i个位置的1表示能切割为k个i,0 ...

  7. 【二分法】计蒜客习题 切割钢管

    思路: 切割刚拐和洛谷木材加工一样,在一个区间内找最大值(整数).二分答案+check #include <iostream> using namespace std; int n,k; ...

  8. 第Q题:聪明的木匠(队列解答)=======一位老木匠需要将一根长的木棒切成N段...

    一位老木匠需要将一根长的木棒切成N段.每段的长度分别为L1,L2,......,LN(1 <= L1,L2,-,LN <= 1000,且均为整数)个长度单位.我们认为切割时仅在整数点处切且 ...

  9. uva 714 Copying Books(二分法求最大值最小化)

    题目连接:714 - Copying Books 题目大意:将一个个数为n的序列分割成m份,要求这m份中的每份中值(该份中的元素和)最大值最小, 输出切割方式,有多种情况输出使得越前面越小的情况. 解 ...

最新文章

  1. 【BZOJ 1095】 1095: [ZJOI2007]Hide 捉迷藏 (括号序列+线段树)
  2. 最新知识图谱论文清单,就算看不懂也会忍不住收藏
  3. 怎么实现两周联动加减速_LOL:野辅联动成版本主旋律,三大辅助对线游走兼备...
  4. docker启动nginx后挂了_学员整理笔记系列8 启动docker后运行不了vmware该怎么办?...
  5. H3C SecPath U200-S 如何在内网使用外网IP地址访问内网服务器
  6. Arduino十大滤波算法程序大全(精编无错版)
  7. MacbookPro添加硬盘内存
  8. 中国农业银行K宝证书怎么在中国农业银行APP上下载更新K宝证书?
  9. 阿里巴巴集团CTO张建锋:将开放阿里的技术能力
  10. lgv30刷android10,记一次LG V30系列手机完美刷入MIUI12系统和Flyme刷机教程
  11. 图文结合带你搞懂InnoDB MVCC
  12. bmp/gif/jpg图象最底层原理分析
  13. G. Discarding Game(尺取)
  14. Google的招聘要求
  15. 机器学习-白板推导系列笔记(二十八)-BM
  16. 计算机英语kbc,计算机英语词汇(附;翻译).doc
  17. Throwing Star LAN Tap与专业流量复制器对比
  18. NRF51822 Timer
  19. 个人微信号API接口,微信机器人
  20. 孔乙己第一问之服务通信知多少?

热门文章

  1. 数据结构(一)-------- 树的图示
  2. 新华三 HCL模拟器配置ssh远程登陆
  3. iPhone的屏幕适配
  4. 【改进灰狼优化算法】混沌灰狼优化算法(Matlab代码实现)
  5. 联想笔记本怎么找计算机放桌面,联想笔记本进不去桌面怎么办
  6. ddr老化测试_老化测试常见的问题有哪些
  7. 氙灯老化测试研究|汽车氙灯测试方法:相关性研究
  8. Swagger的配置教程(超级详细)
  9. 【沙龙】基于MDM9206芯片的gokit4(G)的应用实操
  10. 一个悬赏任务app是如何做到年纯利润2000万的?