动态规划算法的核心是构造递归。用动态规划算法求解计算问题的步骤有:
A: 得到原问题的解(自底向上实现递归)
B: 分析算法的时间复杂度
C: 明确边界条件
D: 建立子问题间的递归关系
E: 定义子问题
A: 得到原问题的解(自底向上实现递归)
B: 分析算法的时间复杂度
C: 明确边界条件
D: 建立子问题间的递归关系
E: 定义子问题
举一反三
- 动态规划与贪心算法的最大区别( ) A: 贪心算法不是递归问题,动态规划是递归问题 B: 动态规划采用从下向上的方法求解,贪心算法采用从上向下的方法求解 C: 动态规划是子问题有重叠,贪心算法是局部最优能够得到全局最优 D: 一个问题能够用动态规划求解,就能够用贪心算法求解
- 设问题P的输入规模是n,下述三个算法是求解P的不同的分治算法. 算法1:在常数时间将原问题划分为规模减半的5个子问题,递归求解每个子问题,最多用线性时间将子问题的解综合而得到原问题的解. 算法2:先递归求解2个规模为n-1的子问题,最多用常量时间将子问题的解综合得到原问题的解. 算法3:在常数时间将原问题划分为规模n/3的9个子问题,递归求解每个子问题,最多用时间将子问题的解综合得到原问题的解. 要求在上述三个算法中选择最坏情况下时间复杂度最低的算法,需要选择哪个算法?https://p.ananas.chaoxing.com/star3/origin/d42cf4fc49501f223442d7f3184b4555.png
- 动态规划解题的步骤分为四步(1)分析最优解的结构 (2)建立递归关系(3)计算最优值(4)构造最优解。关于这四个步骤的内容描述不正确的是哪个? A: 分析最优解的结构:将一个一般化问题可以分解为几个性质相同的子问题,并且问题的最优解可以通过子问题的最优解合并得到,也就是要满足最优子结构性质 B: 建立递归关系:建立关于问题最优值的递归定义,即问题的最优值通过子问题的最优值合并得到。 C: 计算最优值:以自顶往下的方法计算问题的最优值,也就是先求解规模较大的问题的最优值。 D: 构造最优解:根据计算最优值时得到的信息构造出问题的最优解,通常是用递归算法完成最优解的构造
- 设问题P的输入规模是n,下述三个算法是求解P的不同的分治算法. __算法1:在常数时间将原问题划分为规模减半的5个子问题,递归求解每个子问题,最多用线性时间将子问题的解综合而得到原问题的解. __算法2:先递归求解2个规模为n-1的子问题,最多用常量时间将子问题的解综合得到原问题的解.
- 设问题P的输入规模是n,下述三个算法是求解P的不同的分治算法. 算法1:在常数时间将原问题划分为规模减半的5个子问题,递归求解每个子问题,最多用线性时间将子问题的解综合而得到原问题的解. 算法2:先递归求解2个规模为n-1的子问题,最多用常量时间将子问题的解综合得到原问题的解. 算法3:在常数时间将原问题划分为规模n/3的9个子问题,递归求解每个子问题,最多用[img=53x28]18039e0e50c75e0.png[/img]时间将子问题的解综合得到原问题的解. 要求在上述三个算法中选择最坏情况下时间复杂度最低的算法,需要选择哪个算法? A: 1 B: 2 C: 3 D: 都不对