用回溯法解决0-1背包问题(共4页).docx

上传人:飞****2 文档编号:6713217 上传时间:2022-02-09 格式:DOCX 页数:4 大小:65.59KB
返回 下载 相关 举报
用回溯法解决0-1背包问题(共4页).docx_第1页
第1页 / 共4页
用回溯法解决0-1背包问题(共4页).docx_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《用回溯法解决0-1背包问题(共4页).docx》由会员分享,可在线阅读,更多相关《用回溯法解决0-1背包问题(共4页).docx(4页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、精选优质文档-倾情为你奉上#includeint c; /背包容量 int n; /物品数 int weight100; /存放n个物品重量的数组 int price100; /存放n个物品价值的数组 int currentWeight=0; /当前重量 int currentPrice=0; /当前价值 int bestPrice=0; /当前最优值 int bestAnswer100; /当前最优解 int bp=0;int bA100; /当前最优解 int times=0;void Print(); void Backtracking(int i) times+=1;if(in) Pr

2、int();if(bestPricebp)bp=bestPrice;for(int j=1;j=n;j+)bAj=bestAnswerj;return; if(currentWeight+weighti=c) /将物品i放入背包,搜索左子树 bestAnsweri = 1; currentWeight += weighti; bestPrice += pricei; Backtracking(i+1); /完成上面的递归,返回到上一结点,物品i不放入背包,准备递归右子树 currentWeight -= weighti; bestPrice -= pricei; bestAnsweri = 0

3、; Backtracking(i+1); void Print() int i;printf(n路径为 ); for(i=1;in;+i) printf(%d,bestAnsweri); printf(%dt价值为%dn,bestAnsweri,bestPrice); void main() int i;/*输入部分*/printf(请输入物品的数量:n); scanf(%d,&n); printf(请输入背包的容量(能承受的重量):n); scanf(%d,&c); printf(请依次输入%d个物品的重量:n,n);for(i=1;i=n;i+)scanf(%d,&weighti);printf(请依次输入%d个物品的价值:n,n);for(i=1;i=n;i+)scanf(%d,&pricei);printf(各符合条件的路径为:n); Backtracking(1);printf(*n);printf(n最优解路径为 ); for(i=1;in;+i) printf(%d,bAi);printf(%dt总价值为 %dn,bAi,bp); printf(nn总共搜索结点数%dn,times);专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 教育教学

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com