2024年9月GESP编程能力认证C++等级考试六级真题(含答案和解析).docxVIP

  • 0
  • 0
  • 约7.73千字
  • 约 25页
  • 2026-09-25 发布于河南
  • 举报

2024年9月GESP编程能力认证C++等级考试六级真题(含答案和解析).docx

2024年9月GESP编程能力认证C++等级考试六级真题(含答案和解析)

第一部分单项选择题(共15题,每题2分,满分30分)

1.下列关于动态规划算法与分治算法的核心区别,描述正确的是()

A.动态规划要求子问题必须相互独立,分治算法不要求

B.分治算法要求子问题必须存在重叠,动态规划不要求

C.动态规划通过存储已求解子问题的答案避免重复计算,分治算法通常不做该存储

D.动态规划只能求解最优化问题,分治算法只能求解计数问题

【答案】C

【解析】分治算法的核心是将原问题划分为若干互不重叠的独立子问题,递归求解后合并结果,典型应用如归并排序、快速排序,由于子问题无重叠,通常不需要额外存储子问题的解;动态规划适用于子问题存在重叠的场景,通过记忆化存储已计算的子问题结果避免重复计算,既可以求解最优化问题(如最长递增子序列、背包问题),也可以求解计数问题(如爬楼梯方案数、路径计数)。选项A颠倒了两类算法对子问题独立性的要求,选项B颠倒了子问题重叠的适用场景,选项D对两类算法的适用问题描述过于绝对,因此C表述正确。

2.已知01背包问题中,共有n件物品,每件物品重量为w[i],价值为v[i],背包最大承重为W。若采用一维数组优化的动态规划解法,定义dp[j]表示背包容量为j时能装下的最大价值,则遍历背包容量j的正确顺序是()

A.从0到W正序遍历

B.从W到w[i]

文档评论(0)

1亿VIP精品文档

相关文档