阅读下列说明和 C 代码,回答问题 1 和问题 2,将解答填入答题纸的对应栏内。

最全题库2022-08-02  30

问题 阅读下列说明和 C 代码,回答问题 1 和问题 2,将解答填入答题纸的对应栏内。 【说明】 某公司购买长钢条,将其切割后进行出售。切割钢条的成本可以忽略不计,钢条的长度为整英寸。已知价格表 P,其中中 Pi(i=1,2,...,m)表示长度为 i 英寸的钢条的价格。现要求解使销售收益最大的切割方案。求解此切割方案的算法基本思想如下: 假设长钢条的长度为 n 英寸,最佳切割方案的最左边切割段长度为 i 英寸,则继续求解剩余长度为 n-i 英寸钢条的最佳切割方案。考虑所有可能的 i,得到的最大收益 rn对应的切割方案即为最佳切割方案。rn的递归定义如下: rn =max1≤ i ≤n(pi +rn-i) 对此递归式,给出自顶向下和自底向上两种实现方式  【C 代码】  /*常量和变量说明 n:长钢条的长度 P[]:价格数组 */ #define LEN 100 int Top_Down_ Cut_Rod(int P[],int n){/*自顶向下*/ int r=0; int i; if(n==0){ retum 0; } for(i=1;(1);i++){ int tmp=p+Top_Down_ Cut_Rod(p,n-i); r=(r小于=tmp)?r:tmp; } return r; } int Bottom_Up_Cut_Rod(int p[],int n){ /*自底向上*/ int r[LEN]={0}; int temp=0; int i,j; for(j=1;j大于=n;j++){ temp=0; for(i=1;(2);i++){ temp=(3); } (4) } return r[n]; }  【问题 1】 根据说明,填充 C 代码中的空(1)~(4)。 【问题 2】根据说明和 C 代码,算法采用的设计策略为(5)。 求解 rn时,自顶向下方法的时间复杂度为(6);自底向上方法的时间复杂度为(7)(用O 表示)。

选项

答案

解析
转载请注明原文地址:https://tihaiku.com/congyezige/2408444.html

最新回复(0)