未分类题

0-1背包问题定义为:给定i个物品的价值v[1…i]、小重量w[1…i]和背包容量T,每个物品装到背包里或者不装到背包里。求最优的装包方案,使得所得到的价值最大。
0-1背包问题具有最优子结构性质。定义c[i][T]为最优装包方案所获得的最大价值,则可得到如下所示的递归式。
中级软件设计师,历年真题,2019年下半年(下午)《软件设计师》真题
【c代码】
下面是算法的C语言实现。
(1)常量和变量说明
T:背包容量
v[]:价值数组
w[]:重量数组
c[][]:c[i][j]表示前i个物品在背包容量为j的情况下最优装包方案所能获得的最大价值
(2)C程序
中级软件设计师,历年真题,2019年下半年(下午)《软件设计师》真题
中级软件设计师,历年真题,2019年下半年(下午)《软件设计师》真题
【问题1】(8分)
根据说明和C代码,填充C代码中的空(1)-(4)。
【问题2】(4分)
根据说明和C代码,算法采用了(5)设计策略。在求解过程中,采用了(6)
(自底向上或者自顶向下)的方式。
【问题3】(3分)
若5项物品的价值数组和重量数组分别为v[]={0,1,6,18,22,28}和w[]={0,1,2,5,6,7}背包容量为T=11,则获得的最大价值为(7)。

【参考答案】

【问题1】
(1)c[i][j]
(2)i>0&&j>=w[i]
(3)Calculate_Ma......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题

未分类题
某牙科诊所拟开发一套信息系统,用于管理病人的基本信息和就诊信息。诊所工作人员包括:医护人员(DentalStaff)、接待员(Receptionist)和办公人员(OfficeStaff)等。系统主要功能需求描述如下:1.记录病人基本信息(Maintainpatientinfo)。初次就诊的病人,由接待员将病人基本信息录入系统。病人基本信息包括病人姓名、身份证号、出生日期、性别、首次就诊时间和最后一次就诊时间等。每位病人与其医保信息(MedicalInsurance)关联。2.记录就诊信息(Recordofficevisit info)。病人在诊所的每一次就诊,由接待员将就诊信息(OfficeVisit)录入系统。就诊信息包括就诊时间、就诊费用、支付代码、病人支付费用和医保支付费用等。3.记录治疗信息(Recorddentalprocedure)。病人在就诊时,可能需要接受多项治疗,每项治疗(Procedure)可能由多位医护人员为其服务。治疗信息包括:治疗项目名称、治疗项目描述、治疗的牙齿和费用等。治疗信息由每位参与治疗的医护人员分别向系统中录入。4.打印发票(Printinvoices)。发票(Invoice)由办公人员打印。发票分为两种:给医保机构的发票(InsuranceInvoice)和给病人的发票(PatientInvoice)。两种发票内容相同,只是支付的费用不同。当收到治疗费用后,办公人员在系统中更新支付状态(Enterpayment)。5.记录医护人员信息(Maintaindentalstaff info)。办公人员将医护人员信息录入系统。医护人员信息包括姓名、职位、身份证号、家庭住址和联系电话等。6.医护人员可以查询并打印其参与的治疗项目相关信息(Searchandprintprocedureinfo)。现采用面向对象方法开发该系统,得到如图3-1所示的用例图和3-2所示的初始类图。【问题1】(6分)根据说明中的描述,给出图3-1中A1~A3所对应的参与者名称和U1~U3所对应的用例名称。【问题2】(5分)根据说明中的描述,给出图3-2中C1~C5所对应的类名。【问题3】(4分)根据说明中的描述,给出图3-2中类C4、C5、Patient和DentalStaff的必要属性。