首页 > 其他分享 >解题报告-论对“分组背包”的新理解

解题报告-论对“分组背包”的新理解

时间:2024-12-09 19:20:36浏览次数:3  
标签:背包 依赖 解题 分组 论对 物品 这道题

解题报告-论对“分组背包”的新理解

分组背包都知道,但是有一种新式分组背包,它不像我们想的那样每组只能选一个,但是这样的背包问题又是与分组强相关的,那么怎么做呢?

这道题这道题这道题就是这种分组背包的典范。这种背包问题的共同特征是:选完一组背包中的上一个后,才能选下一个。

乍一看,这是一个依赖背包问题,因为它们之间存在依赖关系,“选完上一个才能选下一个”。但是,如果用依赖背包去做,时间复杂度是 \(O(nV^2)\) 的,很不可接受,那么这种题有什么异于依赖背包的特殊性质吗?

首先,如果我们把依赖关系树建出来,会发现每一组物品都表现为一条链的形式,这就意味着我们不用考虑给每个子树分配多少空间。其次,既然是分组背包,我们在一组中是只能选一个物品的,而在这条链当中,这表现为你只能选前 \(i\) 个物品。

这使我们受到启发,这不就是前缀和吗?将每一组中每一个物品按照依赖关系排序后,将每一个物品 \(i\) 的价值 \(v_i\) 设为 \(\sum_{j\le i}v_j\),重量 \(w_i\) 设为 \(\sum_{j\le i} w_j\)。这样既满足了依赖关系,又满足了分组背包“每组背包只能选一个”的限制。

当然了,在一些具有某些特殊性质的此类分组背包问题中,我们甚至可以直接把每组背包的每个物品全部拆开,普通背包处理。这样的分组背包要满足 \(\forall i<j,w_i-w_{i-1}\ge w_j-w_{j-1}\)。这样差分地把每一个 \(w_i\) 设为 \(w_i-w_{i-1}\) 即可。但是这个性质太强,所以不经常用。

标签:背包,依赖,解题,分组,论对,物品,这道题
From: https://www.cnblogs.com/KarmaticEnding/p/18595857

相关文章

  • Codeforces Round 992 (Div. 2) 解题报告
    比赛地址:https://codeforces.com/contest/2040A.GameofDivision题目https://codeforces.com/contest/2040/problem/A题意给你一个长度为\(n\)的整数数组\(a_1,a_2,\ldots,a_n\)和一个整数数组\(k\)。两个玩家正在玩一个游戏。第一个玩家选择一个索引\(1\l......
  • 华为机试HJ93 数组分组
    首先看一下题描述输入int型数组,询问该数组能否分成两组,使得两组中各元素加起来的和相等,并且,所有5的倍数必须在其中一个组中,所有3的倍数在另一个组中(不包括5的倍数),不是5的倍数也不是3的倍数能放在任意一组,可以将数组分为空数组,能满足以上条件,输出true;不满足时输出false。数......
  • 49. 字母异位词分组
    给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例1:输入:strs=["eat","tea","tan","ate","nat","bat"]输出:[["bat"],["nat","tan"],[&q......
  • 解题报告-论对“依赖背包”的新理解
    解题报告-论对“依赖背包”的新理解依赖背包的依赖关系组成一棵树。那么为什么不能按照树形\(\text{DP}\)的方式来思考它呢?这是个模板题。既然我们说了按照树形\(\text{DP}\)的方式思考它,就要打破常规的\(\text{DP}\)思维。树形\(\text{DP}\)的特点之一就是考虑每个子......
  • 解题报告-论对“排序”的新理解
    解题报告-论对“排序”的新理解这样排序的问题,一般都是多次排序,然后查询一个位置。这也就意味着,这样的题一般有多样的特殊性质。如果我们多次暴力排序,那么复杂度可以近似\(O(nm\logn)\),肯定是不行的。这个时候,我们就要拿出针对这种题的\(\texttt{Trick}\)——\(01\)序列。......
  • 洛谷解题日记14||前缀和,差分与离散化
    #include<iostream>#include<vector>#include<algorithm>usingnamespacestd;intmain(){intn;cin>>n;//读取区间的个数nvector<pair<int,int>>intervals(n);//存储区间的起点和终点,使用pair类型//读......
  • 解题报告-论对“区间可持久化”的新理解
    解题报告-论对“区间可持久化”的新理解当我第一眼看到“可持久化\(\texttt{Trie}\)”的时候,我以为这不过是一个\(\texttt{Trie}\)+可持久化罢了。事实证明也是这样,在后面的代码实现中,我也是一遍打对了这个紫色板子。那么,一道模板题,有什么好说的?正是因为控住我的不是模板,这道......
  • 分组加密知识点速记
    注:仅为速记,完整博客见【密码算法之三】分组密码工作模式(ECB\CBC\CFB\OFB\CTR\XTS)浅析分组加密的概念与分类ECBCBCCFBOFBCTR总结......
  • ES中long类型的日期时间戳转为日期格式进行分组统计
    将ES中long类型的日期时间戳转为日期格式进行分组统计。{"size":0,"query":{"bool":{"must":[{"range":{"crawltime":{"from":1730706212000,......
  • 解题报告:论对“多元环”的新理解
    解题报告:论对“多元环”的新理解这道题真的把我创红温了。。。直到最后看题解才恍然大悟。推荐这道题的原因:十分板。在以后的学习中,我们还会遇到很多多元环,都可以这样处理。在做题的时候,我有过很多想法。观察到了一切性质,都不能用。绕来绕去,还是死在了\(O(n^3)\)上。其中,我......