首页 > 其他分享 >关于 分组背包

关于 分组背包

时间:2022-10-12 15:13:13浏览次数:83  
标签:多重 背包 ... 每组 分组 关于 物品

问题描述:

有 N 种物品和一个容量为 V 的背包,每组物品有若干个,同一组内的物品最多只能选一个。每件体积是 w[i][j] ,价值是 v[i][j] 。求解将哪些物品装入背包可使价值总和最大。


问题特点:

每组有至少一个不同的物品,每组最多选一个(可以不选)。


与多重背包的关系:

分组背包在面对一组内 s 个的物品时,共有 s+1 种决策情况,分别是选第 0,1,2...s 个物品(选第 0 个物品即不选该组内任何物品)。多重背包中每个物品有 s 个,也有 s + 1 种决策情况,分别是选 0,1,2...s 个该物品,在此可以和上面的情况做一下对比区分。多重背包可以说是分组背包的一个特殊情况,所以多重背包可以用放弃数组完整性的代价来优化算法。


模板:

for(int i = 1; i <= n; i ++)
        for(int j = m; j >= 0; j --)
            for(int k = 0; k <= s[i]; k ++)
                if(v[i][k] <= j)
                    dp[j] = max(dp[j], dp[j - v[i][k]] + w[i][k]);

模板题:9. 分组背包问题 - AcWing题库

标签:多重,背包,...,每组,分组,关于,物品
From: https://www.cnblogs.com/marswithme/p/16778389.html

相关文章

  • AcWing 9.分组背包问题
    题目链接:http://www.acwing.com/problem/content/9/博客链接:https://www.cnblogs.com/marswithme/p/16778389.html 放AC代码1#include<bits/stdc++.h>2usingn......
  • 关于mysql archive存储引擎
    政府还有一个让数据库专家摊上更多事情的职能,就是安全控制和数据审计。那些管理着海量数据仓库的企业官员常常得回答诸如“何人何时修改了什么”或者“何人何时查看了什么”......
  • 关于 springcloud + nacos 启动报错:nacos save snapshot error
    关于nacos报错:nacossavesnapshoterror1:首先这个nacos报错并不影响你的正常使用,但是每次启动错误都会报错nacossavesnapshoterror,找不到config的配置;2:确......
  • 【杂谈】关于数据和模型,初学者极容易忽视的两个问题!
    说起深度学习与CNN,想必大家很熟悉;说起计算机视觉中的目标检测等各个方向,相比大家平时也接触过不少东西了;不过有两个小的方向,虽然相关的论文、项目、甚至研究方法都不多,却是......
  • 关于useState和useRef的区别
    1:  useState的值在每个rernder中都是独立存在的。而useRef.current则更像是相对于render函数的一个全局变量,每次他会保持render的最新状态。这种关系更像是js一个经典......
  • 关于max_allowed_packet的修改
    项目中查询的时候会好好的,但是有时候会突然间报错:packetforqueryistoolarge(2248>1024),youcanchangethisvalueontheserverbysettingthemax_allowed_packet......
  • 关于ATL组件网页调用
    一、控件只构造不初始化原因:说明网页已经加载了组件,但自身实现可能不完整,使用下面的方案3解决了问题 解决方案1:BEGIN_PROP_MAP(CYQFrame) PROP_DATA_ENTRY("_cx",......
  • 关于lambda的由来
    总结lambda表达式的本质就是匿名方法,根据委托推断类型classProgram{staticvoidMain(string[]args){//泛型委托最后一个是返......
  • 关于Java中length、length()、size()的区别
    以前总是觉得自己好像会了,但是某天忽然面对这个笔试题还是会恍惚一下,混淆和答错的几率也很大,不知道有没有其他人像我一样的。所以今天把这个问题记一下,希望印象更深刻。......
  • DQL_分组查询和DQL_分页查询
    DQL_分组查询:1.语法:groupby分组字段;2.注意:1.分组之后查询的字段:分组字段、聚合函数2.where和having的区别?1.where在分组之前进行限定,如果不满足条件,则不参......