全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 问题描述一、0-1背包问题给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,如何选择才能使得物品的总价格最高? 2、 算法设计思想回溯法3、 算法过程描述1.解空间的定义物品有装入和不装入两种状态,设装入为1,不装入为0,例如n=3时,解空间为(0,0,0),(0,0,1)(1,1,1)2.解空间结构的组织使用一棵子集树来表示解空间每一条边的权值代表装或不装(1或0)采用深度优先搜索遍历整个树3.约束条件1)重量不超过背包的容量2)已装入物品的价值Cp+剩余空间装入物品的最大价值r=最优解bestP注*:最大价值r的求法:假设物品能够分割,运用贪心算法的思想,求出背包理论最大价值r4、 算法实现及运行结果#includeint n,c,bestp;/物品的个数,背包的容量,最大价值int p10000,w10000,x10000,bestx10000;/物品的价值,物品的重量,xi暂存物品的选中情况,物品的选中情况void Backtrack(int i,int cp,int cw) /cw当前包内物品重量,cp当前包内物品价值 int j; if(in)/回溯结束 if(cpbestp) bestp=cp; for(i=0;i=n;i+) bestxi=xi; else for(j=0;j=1;j+) xi=j; if(cw+xi*wi=c) cw+=wi*xi; cp+=pi*xi; Backtrack(i+1,cp,cw); cw-=wi*xi; cp-=pi*xi; int main() int i; bestp=0; printf(请输入背包最大容量:n); scanf(%d,&c); printf(请输入物品个数:n); scanf(%d,&n); printf(请依次输入物品的重量:n); for(i=1;i=n;i+) scanf(%d,&wi); printf(请依次输入物品的价值:n); for(i=1;i=n;i+) scanf(%d,&pi); Backtrack(1,0,0); printf(最大价值为:n); printf(%dn,bestp); printf(被选中的物品依次是(0表示未选中,1表示选中)n); for(i=1;i=n;i+) printf(%d ,bestxi); printf(n);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理行业前沿动态:把握未来趋势
- 护理信息技术应用培训
- 2026前期管理面试题及答案
- 2026施工管理方面试题及答案
- 卷烟市场专卖稽查执法岗烟草公司招聘考试参考题库 含答案
- 2026文案编写面试题目及答案
- 《酒店服务与管理》课件-酒店创新管理 3个
- 《生活自然科学课堂|发现身边的鱼类习性知识》
- 《口语汇报训练|条理清晰重点突出》
- 2026项目会计面试题及答案
- 2024年内蒙古呼伦贝尔农垦集团有限公司招聘真题
- T-ZAMA 1001-2024 硅碳负极材料用多孔碳
- 夏季脑血管病预防
- DL-T5181-2017水电水利工程锚喷支护施工规范
- 《职业卫生》模拟考试题与参考答案
- 【课件】半偏法测量电表内阻(课件)
- 重庆市国企招聘考试真题及答案
- 碧桂园-物业保洁综合技能培训课件
- 《美国1787年宪法》实用的教学设计
- 子课题申报表
- YY/T 0994-2015磁刺激设备
评论
0/150
提交评论