#JC1028. 贪心算法

贪心算法

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

1、贪心算法的核心思想是?()。 {{ select(1) }}

  • 遍历全部数据,暴力枚举所有可能性
  • 每一步选择局部最优解,期望得到全局最优解
  • 通过差分进行区间修改求结果
  • 将范围不断对半缩小进行查找

2、“贪心的小童”题目,4堆胡萝卜,要拿到总重量最大的4根胡萝卜,做法是?()。 {{ select(2) }}

  • 每一堆选取重量最小的胡萝卜
  • 随机从每一堆拿一根胡萝卜
  • 每一堆选取重量最大的胡萝卜
  • 全部胡萝卜统一排序取前4根

3、乘船问题,船载重固定,想要船上士兵的人数尽可能多,应该如何选择?()。 {{ select(3) }}

  • 优先选体重最重的士兵
  • 优先选体重最轻的士兵
  • 随机挑选士兵上船
  • 体重中等的士兵优先上船

4、士兵突击题目中,需要使用哪个函数对士兵体重从小到大排序?()。 {{ select(4) }}

  • printf
  • sort
  • cin
  • return

5、一艘船最多坐2人,给定人员体重与船载重,求最少船只数量,正确的双指针做法是?()。 {{ select(5) }}

  • 排序后,最轻和最重尝试配对
  • 排序后,最轻和次轻配对
  • 排序后,最重和次重配对
  • 不排序,直接依次上船

6、排队答疑使平均完成时间最短,应该如何安排学生顺序?()。 {{ select(6) }}

  • 答疑时间长的同学排在前面
  • 答疑时间短的同学排在前面
  • 按照输入原始顺序排队
  • 答疑时间中间的同学排在前面

7、已知士兵体重{7,2,6,4,5},船载重11,士兵突击题目,最多可以运送几名士兵?()。 {{ select(7) }}

  • 2
  • 3
  • 4
  • 5

8、在最少船只问题中,排序后a[i] + a[j] > m,代表含义是?()。 {{ select(8) }}

  • 最轻和最重可以同乘一艘船
  • 最重的人只能单独占用一艘船
  • 最轻的人只能单独占用一艘船
  • 所有人都可以两两配对

9、下面关于局部最优解与全局最优解说法正确的是?()。 {{ select(9) }}

  • 局部最优一定可以得到全局最优
  • 贪心算法依靠局部最优尝试推导全局最优
  • 局部最优和全局最优没有任何关系
  • 全局最优一定不需要局部最优

10、排队答疑样例:4名学生答疑时间3、1、2、6,按最优策略总耗时为?()。 {{ select(10) }}

  • 22
  • 25
  • 12
  • 5.5

二、判断题(每题2分,共10分)

11、贪心算法每一步选取局部最优,就一定能保证得到全局最优解。() {{ select(11) }}

  • 正确
  • 错误

12、乘船要让上船人数最多,优先选择体重轻的人,可以节约船的载重。() {{ select(12) }}

  • 正确
  • 错误

13、最少船只问题需要先对体重数组进行排序,再使用双指针i、j进行处理。() {{ select(13) }}

  • 正确
  • 错误

14、排队答疑想让平均完成时间最短,要把答疑耗时久的同学排在最前面。() {{ select(14) }}

  • 正确
  • 错误

15、sort函数排序数组时,需要包含头文件#include <algorithm>。() {{ select(15) }}

  • 正确
  • 错误