#JC1047. 二分进阶

二分进阶

一、单项选择题(每题2分,共20分)

1、二分算法核心思想是?() {{ select(1) }}

  • 遍历全部候选解逐一判断
  • 递归深度优先向下搜索
  • 将范围一分为二,筛除一半不合理区间,不断缩小搜索区间
  • 逐层扩散向外搜索

2、二分求中间值,下列不属于PPT给出的取mid方式的是?() {{ select(2) }}

  • mid=(L+R)/2
  • mid=(L+R+1)/2
  • mid = 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+1
  • R = mid‑1
  • ans=mid; L=mid+1
  • ans=mid; R=mid‑1

6、木材切割,当cnt>=k,mid是合法长度,希望尝试更长长度,正确操作是?() {{ select(6) }}

  • R = mid‑1
  • ans=mid; R=mid‑1
  • ans=mid; L=mid+1
  • L=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) }}

  • 正确
  • 错误