#JC1047. 二分进阶
二分进阶
一、单项选择题(每题2分,共20分)
1、二分算法核心思想是?() {{ select(1) }}
- 遍历全部候选解逐一判断
- 递归深度优先向下搜索
- 将范围一分为二,筛除一半不合理区间,不断缩小搜索区间
- 逐层扩散向外搜索
2、二分求中间值,下列不属于PPT给出的取mid方式的是?() {{ select(2) }}
mid=(L+R)/2mid=(L+R+1)/2mid = L+(R‑L)/2- 以上都是PPT给出方式
3、标准二分查找(猜数字)找到目标值时应当如何处理?() {{ select(3) }}
- 继续循环直到L>R
- 直接结束查找
- 将mid保存到ans,继续遍历
- 只能调整L,不能调整R
4、二分答案问题和普通二分查找最大区别是?() {{ select(4) }}
- 二分答案找到mid就立刻退出循环
- 二分答案不能使用while(L<=R)
- 二分答案目标值未知,但可以验证mid是否满足条件,循环需要完整跑完
- 二分答案不需要L、R边界
5、木材切割二分答案,当cnt<k(可切段数小于需要段数k),说明mid长度太长,应当?()
{{ select(5) }}
L = mid+1R = mid‑1ans=mid; L=mid+1ans=mid; R=mid‑1
6、木材切割,当cnt>=k,mid是合法长度,希望尝试更长长度,正确操作是?()
{{ select(6) }}
R = mid‑1ans=mid; R=mid‑1ans=mid; L=mid+1L=mid‑1
7、切割木材二分答案模板中,变量ans的作用是?() {{ select(7) }}
- 保存满足条件的最优答案
- 记录循环执行次数
- 统计木头总根数
- 保存mid的初始值
8、网线切割题目输入是小数米,PPT采用什么方案避免浮点数二分?() {{ select(8) }}
- 直接用double做二分
- 全部换算为厘米(乘100)转为整数运算
- 使用long double直接运算
- 不做处理直接比较
9、造海船原木切割,若连长度为1的小段都切不出来,输出为?() {{ select(9) }}
- -1
- 1
- 0
- k
10、二分答案中验证mid,切割得到段数cnt如何计算?() {{ select(10) }}
- 每根木头长度减去mid累加
- 每根木头长度除以mid,整数除法,结果累加
- 每根木头长度乘mid累加
- 木头长度取模mid累加
二、判断题(每题2分,共10分)
11、普通二分查找(猜数字),找到目标数字就可以直接结束循环。() {{ select(11) }}
- 正确
- 错误
12、二分答案问题,循环结束后ans才是最终结果,不能中途找到就break退出。() {{ select(12) }}
- 正确
- 错误
13、木材切割:mid越大,能够切出来的总段数cnt会越大。() {{ select(13) }}
- 正确
- 错误
14、网线切割把米转换厘米,是为了把小数运算转换成整数二分。() {{ select(14) }}
- 正确
- 错误
15、二分答案的while循环条件不能写L<=R,只能写L<R。()
{{ select(15) }}
- 正确
- 错误