背包问题中的二进制数组的作用

        前几天老师布置了一个实验作业,背包问题:

        给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包的容量为C。问应如何选择装入背包的物品,使得装入背包中物品的总价值最大?在装入背包时,每种物品i只有两种选择:装入或者不装入。既不能装入多次,也不能只装入一部分。

(1)背包容量C为6,n为4,物品重量和价值如下图所示,如何选取使得背包总价值最大?使用穷举法编程实现

(2)背包容量C为300,n为50,物品重量和价值在Excel中,如何选取使得背包总价值最大?使用穷举法编程实现。(从Excel中读取数据)

         我们先解决第一问。

         第一问有很多种解决办法。第一种是利用二进制数组解决;第二种是贪心算法。贪心算法emmmm我还没学,等几天我学了再来发表文章辣!我们先看看如何利用二进制数组解决背包问题。

        当时在网上搜到这个程序的时候很纳闷为什么要引入一个二进制数组,百度了也没有答案。然后去问了老师,现在分享一下。

        遇到这种不知道怎末办不理解的程序,最简单的办法就是代入。我们把题目中的数据代入进

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值