判断题
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 + min0≤l≤k {f i−1,j,l +wj,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对应的价格PL 。要求你找出适当切割原木分段出售所能获得的最大收益RN 。例如,根据下面给出的价格表,若要出售一段8米长的原木,最优解是将其切割为2米和6米的两段,这样可以获得最大收益R8 =P2+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,则有RN =max{PN ,max1≤i<N {Ri +RN−i }}
C.若N>M,则有RN =max1≤i<N {Ri +RN−M }
D.算法的时间复杂度是O(N2 )