正文

经典算法问题------背包问题2005-09-21 23:54:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/wojiele/5092.html

分享到:

问题描述; 有不同价值,不同重量的物品n件,求从这n件物品中选取一部分物品的选择方案,是选中的物品总重量不超过指定的限制重量,但是选中的物品的价值之和最大. [分析] 这个经典的问题的较高效率的方法是一般是递归和贪婪法,但是我在软件考试参考书上看到这个题目用了一个很好的算法(搜索法),是把每一种解决的可能情况转换成2进制的数来表示,我第一次看到这个方法真的很好(也许是我太菜了的原因吧,呵呵~~~~~~~~~) 大家来一起讨论一下: 程序代码: #include#includeusing namespace std;const int MAX=100;int change_base(float b[],int num){ int tempt=num/2,i=0,yushu; yushu=num%2; while(tempt!=0) {      b[i]=yushu;   num=tempt;   tempt=num/2;   yushu=num%2;   i++; } b[i]=1;  return i;} int main(){ int num; cout<

阅读(18046) | 评论(3)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册