算法设计与结构 第三章 动态规划 作业

判断题

1-2
最优二叉搜索树的根结点一定存放的是搜索概率最高的那个关键字。

T F

1-3
用动态规划而非递归的方法去解决问题时,关键是将子问题的计算结果保存起来,使得每个不同的子问题只需要被计算一次。子问题的解可以被保存在数组或哈希散列表中。

T F

单选题

2-1
在动态规划中,我们要推导出一个子问题的解与其他子问题解的递推关系。要将这种关系转换为自底向上的动态规划算法,我们需要以正确的顺序填写子问题解的表格,使得在解任一子问题时,所有它需要的子问题都已经被解决了。在下列关系式中,哪一个是不可能被计算的?

A.A(i,j)=min(A(i−1,j),A(i,j−1),A(i−1,j−1))
B.A(i,j)=F(A(min{i,j}−1,min{i,j}−1),A(max{i,j}−1,max{i,j}−1))
C.A(i,j)=F(A(i,j−1),A(i−1,j−1),A(i−1,j+1))
D.A(i,j)=F(A(i−2,j−2),A(i+2,j+2))

画个矩阵就知道了,只能由之前推导出出的也就是左右上方的元素推出来;

2-2
给定递推方程 f ​i,j,k​​ =f ​i,j+1,k​​ + min​0≤l≤k​​ {f ​i−1,j,l​​ +w​j,l​​ }。要通过循环解此方程,我们一定不能用下列哪种方法填表?
在这里插入图片描述
A.for k in 0 to n: for i in 0 to n: for j in n to 0
B.for i in 0 to n: for j in 0 to n: for k in 0 to n
C.for i in 0 to n: for j in n to 0: for k in n to 0
D.for i in 0 to n: for j in n to 0: for k in 0 to n

2-3
切原木问题:给定一根长度为N米的原木;另有一个分段价格表,给出长度L=1,2,⋯,M对应的价格P​L​​ 。要求你找出适当切割原木分段出售所能获得的最大收益R​N 。例如,根据下面给出的价格表,若要出售一段8米长的原木,最优解是将其切割为2米和6米的两段,这样可以获得最大收益R​8​​ =P​2+P6=5+17=22。而若要出售一段3米长的原木,最优解是根本不要切割,直接售出。

Length L 1 2 3 4 5 6 7 8 9 10
Price PL 1 5 8 9 10 17 17 20 23 28

下列哪句陈述是错的?
在这里插入图片描述

A.此问题可以用动态规划求解
B.若N≤M,则有R​N​ =max{P​N​​ ,max​1≤i<N​ {R​i​​ +R​N−i​​ }}
C.若N>M,则有RN​​ =max1≤i<N​​ {R​i​​ +R​N−M }
D.算法的时间复杂度是O(N​2​​ )
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Jessieeeeeee/article/details/111870346