问题描述:

问题模板:

寻找有序序列第一个满足某条件的元素的位置:

(这个条件是从序列左起到右,从不满足条件到开始满足。)

//二分区间为左闭右闭的[left,right],初值必须能覆盖解的所有可能取值
int solve(int left,int right){int mid;while(left < right){mid = (left + right)/2;if(条件成立){right = mid;}else{left = mid + 1;}}return left;
}

代码:

#include<iostream>
using namespace std;
int solve(int a[],int left,int right,int k){int mid,i,num;while(left<right){  //只有当left = right才会停下来,这时会得到唯一一个值mid=(left+right)/2;num=0;printf("left=%d,right=%d,mid=%d\n",left,right,mid);for(i=0; i<3; i++){num=num+a[i]/mid;}printf("num=%d\n",num);if(num<k){right=mid;}else{left=mid+1;}}return left;  //返回left或right都可以,因为两者相等
}
int main(){int a[3]= {10,15,24};int n,k,len;scanf("%d",&k);len=solve(a,0,a[2],k);printf("长度为%d",len-1);
}

二分法:木棒切割问题相关推荐

  1. 木棒切割问题(***二分法)

    木棒切割问题(算法笔记p134) Note:回顾4.5.1 lower_bound 和upper_bound模板,注意上下界问题 给出N根木棒,长度均已知,现在希望通过切割它们来得到至少K段长度相等的 ...

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

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

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

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

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

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

  5. 周边检索POI技术方案设计

    点击上方关注 "终端研发部" 设为"星标",和你一起掌握更多数据库知识 因公众号更改推送规则,请点"在看"并加"星标"第 ...

  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. 特斯拉Tesla Model 3整体架构解析(上)
  2. java8学习之Lambda表达式深入与流初步
  3. OpenGL基于PBR的图像的光照IBL的实例
  4. Linux解压rar、zip、war、tar文件
  5. Quest 公司的Shareplex 与 GoldenGate比较
  6. xlwings删除数据_xlwings如何删除行和列?
  7. 苹果官网上架Apple Watch Series 3官翻机:1869元起
  8. WebStorm配置Sass
  9. 卸载Windows的引导界面中的变色龙选项
  10. PHP与前端谁的工资高,前端和后端哪个工资高一些
  11. 手把手教你进行腾讯云域名注册
  12. 上班族们都有哪些一直坚持的业余兴趣爱好?
  13. linux下at24c02驱动程序,Linux下iic(i2c)读写AT24C02
  14. 乔布斯私生女回忆录:我的渣男爸爸Steve Jobs
  15. Unity NGUI 插件 简介
  16. SDH系统实现PCM信号传输以及时分复用的simulink仿真
  17. Netlogo 之获取邻居中距离当前海龟最近的海龟
  18. 计算机在医学影像学中有哪些应用,计算机辅助教学在医学影像学实习课中的应用...
  19. SketchUp:解决修改不同模型背景天空颜色的问题图文教程
  20. Linux中的命令updata

热门文章

  1. 计算机二级c选择题怎么准备,马上计算机二级考试,你准备得怎么样了?
  2. 输入一个天数计算几周零几天 C语言,结构体练习——计算输入的日期为本年度第几天...
  3. java restful中文乱码_使用RestTemplate访问RESTful服务乱码处理
  4. oracle自动创建分区存储过程,oracle 存储过程创建表分区
  5. 【深入理解Java虚拟机学习笔记】第三章 垃圾收集器与内存分配策略
  6. Spring DI(依赖注入)构造器注入篇
  7. 基于JAVA+SpringBoot+MYSQL的医院预约挂号平台
  8. 基于JAVA+SpringBoot+Mybatis+MYSQL的美食分享网站
  9. 基于JAVA+SpringMVC+Mybatis+MYSQL的OA办公管理系统
  10. 状态模式java 在线投票_Java 状态模式