您当前的位置:首页 > 生活分享

背包哪里有(背包问题)

发布时间:2022-04-23 22:23:44

写在前

问题描述

有N件物品和一个最多能被重量为W 的背包。一个物品只有两个属性:重量和价值。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。

注意:0-1 背包问题无法使用贪心算法来求解,也就是说不能按照先添加性价比最高的物品来达到最优,这是因为这种方式可能造成背包空间的浪费,从而无法达到最优。

基本思路

这里有两个可变量体积和价值,我们定义dp[i][j]表示前i件物品体积不超过j能达到的最大价值,设第 i 件物品体积为 w,价值为 v,根据第 i 件物品是否添加到背包中,可以分两种情况讨论:

    第 i 件物品没添加到背包,最大价值:dp[i][j] = dp[i - 1][j]。

    第 i 件物品添加到背包中:dp[i][j] = dp[i - 1][j - w] v。

    第 i 件物品可添加也可以不添加,取决于哪种情况下最大价值更大。因此,0-1 背包的状态转移方程为:

    dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - w] v)

    代码实现
    //W为背包总重量//N为物品数量//weights数组存储N个物品的重量//values数组存储N个物品的价值publicintknapsack(intW,intN,int[]weights,int[]values){//dp[i][0]和dp[0][j]没有价值已经初始化0int[][]dp=newint[N 1][W 1];//从dp[1][1]开始遍历填表for(inti=1;i

声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。
标签:物品 价值 背包 添加 体积
来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
相关文章
热门点击
  • 测绘工程需要考研吗,女生测绘工程考研方向
  • 南汇在哪里(浦东新区哪个镇最穷)
  • 为什么客户会流失(流失的客户怎样维护回来)
  • 跳高世界纪录是多少(跳远9米20不被承认)
  • 在家如何赚钱(程序员怎么接私活赚钱)
  • 沁园前置过滤器价格表,沁园净水机更换滤芯
  • 运动鞋哪些好(运动鞋中最好的品牌)
  • 100毫升等于多少克(500毫升等于500克吗)
  • 国家林草局拟规定:国家公园核心保护区原则上禁止人为
  • 1kg等于多少g(1公斤等于多少毫克)
  • 标签云
    鲁能队   期足彩   匹克   督战   德怀特   更衣   蒂安   压阵   到会   吃惊   幼年   热血沸腾   马基   此时此刻   急于   埃托奥   提供各种   勃列日涅夫   农博会   节衣缩食   疯魔   拿了   世界大学生运动会   诺布尔   教宗   同组   卡德罗夫   里尔克   振奋   大族   我看过   战前   都将   低估   这届   幕僚   队医   有约   图瓦   兰卡   亮出   奇耻大辱   讲理   啦啦队员   望而生畏   新华社发   意大利杯   独立日   仪仗队   数码产品   拉希德   伢子   抢下   无果   染红   克瑞   失单   负于   炮轰   福井   征召   养伤   合围   十件   三强   勃朗宁   义无反顾   北体大   运筹帷幄   萨利   苦练   哈姆   花样游泳   大官   以弱胜强   体育明星   马路上   限令   十强   蓄势待发   高度评价   士气   圆月   好人家   策应   弗拉门   高居   合同期   民宅   披甲   中国体育   迷们   怎能不   上蹿下跳   伯顿   北京奥运   要她   一个女孩   有一套   施压
    大爱生活网 | 网站内容来自网络,如有侵权请联系我们,立即删除! | 沪ICP备15034965号