首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。 【说明】 0-1背包问题定义为:给定i个物品的价值v[1…i]、重量w[1…i]和背包容量T,每个物品装到背包里或者不装到背包里。求最优的装包方案,使得所得到的价值最大。
阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。 【说明】 0-1背包问题定义为:给定i个物品的价值v[1…i]、重量w[1…i]和背包容量T,每个物品装到背包里或者不装到背包里。求最优的装包方案,使得所得到的价值最大。
admin
2021-03-24
100
问题
阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。
【说明】
0-1背包问题定义为:给定i个物品的价值v[1…i]、重量w[1…i]和背包容量T,每个物品装到背包里或者不装到背包里。求最优的装包方案,使得所得到的价值最大。
0-1背包问题具有最优子结构性质。定义c
[T]为最优装包方案所获得的最大价值,则可得到如下所示的递归式。
【C代码】
下面是算法的C语言实现。
(1)常量和变量说明
T:背包容量
v[]:价值数组
w[]:重量数组
c[]:c
[j]表示前i个物品在背包容量为j的情况下最优装包方案所能获得的最大价值
(2)C程序
#include<Stdio.h>
#include<math.h>
#define N 6
#define maxT 1000
int c[N][maxT]={0};
intMemoized_Knapsack(int V[N],int w[N],intT){
inti;
int j;
for(i=0;i<N;i++){
for(j=0;j<=T;j++){
c
[j]=一1;
}
}
returnCalculate_Max_Value(v,w,N-1,T);
}
intcalculate_Max_Value(int v[N], int w[N],inti,int j){
int temp=0;
if(c
[j]!=一1){
return
(1)
;
}
if(i=0 || j==0){
c
[j]=0;
}else{
c
[j]=Calculate_Max_Value(v,w,i-1,j);
if(
(2)
){
temp=
(3)
;
if(c
[j]<temp){
(4)
;
}
}
}
return c
[j];
}
根据说明和C代码,填充C代码中的空(1)~(4)。
选项
答案
(1)c[i][j] (2)w[i]<=j (3)Calculate_Max_Value(v,w,i-1 j-w[i])+v[i] (4)c[i][j]=temp
解析
一般情况下,采用动态规划法求解最优化问题是构建递归式,然后自底向上迭代地求解。这里采用了自顶向下的递归求解方法,但是和传统的递归又不同。在求解问题的过程中,对第一次遇到的问题采用递归方法求解,把解存放到数组中,后面再次遇到该问题时,直接到数组中查询。
C程序中已经说明c
[j]表示前i个物品在背包容量为j的情况下最优装包方案所能获得的最大价值。开始时c
[j]初始化为一1。calculate_Max_Value函数用来计算c
[j]的值。进入函数后,先判断c
的值是否为-1,如果不是,说明己经计算过,直接返回该值即可,因此空(1)填c
[j];如果是-1,那么需要递归计算。空(2)上面的语句计算了在前i-1项,容量为j的背包问题值的最大价值,因此空(2)填入w
<=j,考虑在前i-1项,容量为j-w
的背包问题值的最大价值,比较两者的大小关系,因此空(3)和空(4)分别填入Calculate_Max_Value(v,w,i-1 j-w
)+v
和c
D]=temp。
转载请注明原文地址:https://www.kaotiyun.com/show/LoxZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
阅读以下说明,回答问题1、问题2、问题3、问题4和问题5,将解答填入对应栏内。[说明]CableModem可以作为一个网桥直接与用户相连,也可以作为一个路由器与Hub相连,从经济角度考虑,目前采用后一种方式居多。有一种HFC网络如图6-2
NAT按技术类型分为哪3种转换方式?请解释画线部分内容含义?
设计该宽带路由器的多任务嵌入式实时操作系统时,由于多个任务均可能要求占用CPU这个关键资源,因此CPU的任务管理是一个非常重要的设计内容。在该实时操作系统中,任务作为占用资源的基本单位,总共有5个状态:休眠状态、就绪状态、运行状态、等待或挂起状态和中断服务
E1和CE1的主要区别是什么?解释配置中画线部分内容含义。
在WindowsServer2003的“路由和远程访问”中提供两种隧道协议来实现VPN服务:(1)和L2TP,L2TP协议将数据封装在(2)协议帧中进行传输。 如图所示的配置窗口中所列协议“不加密的密码(PAP)”和“质询握手身份验证协议(cHA
阅读以下说明,回答问题1和问题2,将解答填入对应的解答栏内。某单位新购近一台Cisco两层交换机2950,其配置过程:第一步,准备安装与调试所需的设备,主要包括Cisco2950交换机、RJ45直通线,RJ45转9针串口转换器、计算机
根据网络拓扑和需求说明,完成(或解释)路由器R1的配置。R1#configureterminal;进入全局配置模式R1(config)#interraceethernet0;进入端口配嗣模式R1(config-i
MultipurposeInternetMailExtension(MIME)is a(46)document messaging standard in the Internet enviroment, with MIME, users can
The purpose of the requirements definition phase is to produce a clear, complete, consistent, and testable(6)of the technical re
SDLCwasinventedbyIBMtoreplacetheolderBisynchronousprotocolforwideareaconnectionsbetweenIBMequipment.Avarieti
随机试题
总结互助合作运动的经验,概括提出引导农民走向社会主义的几种过渡性经济组织形式的文献是
铣削螺旋槽时,应注意哪些事项?
35岁女性,初步诊断右乳腺上方乳腺纤维腺瘤,应采取的治疗方法是
病室最适宜的温度是()。
20×2年3月1日,A公司和B公司由于买卖关系,A公司签发一张20万元的于20×2年5月1日付款的定期付款的甲银行承兑的汇票。3月15日,B公司在和C公司购销合同中,将此汇票背书转让给C公司,并在汇票上记载“不得转让”字样。3月28日,C公司在和D公司的买
下列选项中,属于头脑风暴法优点的有()。
用0.1mol/L盐酸分别与25mLNaOH溶液和25mL氨水完全反应,都消耗了25mL盐酸,这表明:NaOH溶液和氨水的关系是()。
材料:教育过程是连续性的,这种思想并不是什么新的东西。无论人类是自觉的,还是不知觉地这样做,他们总是持续不断地学习和训练他们自己。这种学习和训练主要是通过周围环境的影响,通过亲身经验改变他们的行为、人生观和知识内容。然而到现在,还没有多少机构支持这种自然动
根据我国现行宪法中关于经济制度的规定,下列说法正确的有()。
IEEE802.5令牌环网中,时延由(21)决定。要保证环网的正常运行,环的时延必须有一个最低限度,即(22)。如果达不到这个要求,可以采用的一种办法是通过增加电缆长度,人为地增加时延来解决。设有某一个令牌环网长度为400m,环上有28个站点,其数
最新回复
(
0
)