二分法:木棒切割问题
问题描述:
问题模板:
寻找有序序列第一个满足某条件的元素的位置:
(这个条件是从序列左起到右,从不满足条件到开始满足。)
//二分区间为左闭右闭的[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);
}
二分法:木棒切割问题相关推荐
- 木棒切割问题(***二分法)
木棒切割问题(算法笔记p134) Note:回顾4.5.1 lower_bound 和upper_bound模板,注意上下界问题 给出N根木棒,长度均已知,现在希望通过切割它们来得到至少K段长度相等的 ...
- 二分法典例:木棒切割问题
Input : 输入木棒根数n,要得到的等长木棒数量K,以及n根木棒的长度. Output : 等长木棒的最大长度. 用二分法求解这道题,首先要找到以得到的等长木棒数量为因变量.等长木棒长度为自变量函 ...
- 算法笔记知识点整理大全
每次刷题都觉得自己吃了知识点不全,基础不牢固的亏,刷题的时候目标也不明确,于是看完了算法笔记并把知识点归纳了一下,当然直接看书会更加详细,这个归纳只是学习时加深印象以及方便自己之后回顾而已:之后刷题大 ...
- 《算法笔记》——笔记
算法笔记 胡凡 曾磊 主编 机械工业出版社 文章目录 算法笔记 C/C++快速入门 提醒 memset sscanf与sprintf 引用 浮点数的比较 圆周率 复杂度 黑盒测试 入门篇(1)--入门 ...
- 周边检索POI技术方案设计
点击上方关注 "终端研发部" 设为"星标",和你一起掌握更多数据库知识 因公众号更改推送规则,请点"在看"并加"星标"第 ...
- 【二分法】计蒜客:切割钢管
n个钢管,能否分为k个1,能否分为k个2,......(用li/ l表示一个钢管最多可以切割为几个长度l的钢管) 问题转换为二分答案 1111...0000: 假设第i个位置的1表示能切割为k个i,0 ...
- 【二分法】计蒜客习题 切割钢管
思路: 切割刚拐和洛谷木材加工一样,在一个区间内找最大值(整数).二分答案+check #include <iostream> using namespace std; int n,k; ...
- 第Q题:聪明的木匠(队列解答)=======一位老木匠需要将一根长的木棒切成N段...
一位老木匠需要将一根长的木棒切成N段.每段的长度分别为L1,L2,......,LN(1 <= L1,L2,-,LN <= 1000,且均为整数)个长度单位.我们认为切割时仅在整数点处切且 ...
- uva 714 Copying Books(二分法求最大值最小化)
题目连接:714 - Copying Books 题目大意:将一个个数为n的序列分割成m份,要求这m份中的每份中值(该份中的元素和)最大值最小, 输出切割方式,有多种情况输出使得越前面越小的情况. 解 ...
最新文章
- 特斯拉Tesla Model 3整体架构解析(上)
- java8学习之Lambda表达式深入与流初步
- OpenGL基于PBR的图像的光照IBL的实例
- Linux解压rar、zip、war、tar文件
- Quest 公司的Shareplex 与 GoldenGate比较
- xlwings删除数据_xlwings如何删除行和列?
- 苹果官网上架Apple Watch Series 3官翻机:1869元起
- WebStorm配置Sass
- 卸载Windows的引导界面中的变色龙选项
- PHP与前端谁的工资高,前端和后端哪个工资高一些
- 手把手教你进行腾讯云域名注册
- 上班族们都有哪些一直坚持的业余兴趣爱好?
- linux下at24c02驱动程序,Linux下iic(i2c)读写AT24C02
- 乔布斯私生女回忆录:我的渣男爸爸Steve Jobs
- Unity NGUI 插件 简介
- SDH系统实现PCM信号传输以及时分复用的simulink仿真
- Netlogo 之获取邻居中距离当前海龟最近的海龟
- 计算机在医学影像学中有哪些应用,计算机辅助教学在医学影像学实习课中的应用...
- SketchUp:解决修改不同模型背景天空颜色的问题图文教程
- Linux中的命令updata
热门文章
- 计算机二级c选择题怎么准备,马上计算机二级考试,你准备得怎么样了?
- 输入一个天数计算几周零几天 C语言,结构体练习——计算输入的日期为本年度第几天...
- java restful中文乱码_使用RestTemplate访问RESTful服务乱码处理
- oracle自动创建分区存储过程,oracle 存储过程创建表分区
- 【深入理解Java虚拟机学习笔记】第三章 垃圾收集器与内存分配策略
- Spring DI(依赖注入)构造器注入篇
- 基于JAVA+SpringBoot+MYSQL的医院预约挂号平台
- 基于JAVA+SpringBoot+Mybatis+MYSQL的美食分享网站
- 基于JAVA+SpringMVC+Mybatis+MYSQL的OA办公管理系统
- 状态模式java 在线投票_Java 状态模式