第$K$优解这类问题可在$DP$过程中通过添维解决。归并出当前前$K$大的解。 ...
分类:
其他好文 时间:
2019-10-27 18:56:37
阅读次数:
62
前言 众所周知,背包是可以挂在树上的。 有依赖的背包问题 顾名思义,有依赖的背包里的物品的选择是有依赖的~~废话~~即选择一个物品,就必须先选某个物品。这个必须先选的物品我们称之为依赖物品。一般地,某个物品的依赖物品只有一个~~(如果有多个的话可以考虑把出题人挂在树上)~~(但某个物品可以同时被多个 ...
分类:
其他好文 时间:
2019-10-27 13:09:16
阅读次数:
95
"链接" 对于每个状态$f[j]$多记录一个维度,转移的时候利用类似于归并排序的方法合并,以保证时间复杂度可以承受 注意事项:前$K$大可以有重复的价值,法规的卫生费破口还给你 cpp include include include using namespace std; const int MA ...
分类:
其他好文 时间:
2019-10-26 19:27:32
阅读次数:
93
01背包 题目 有N件物品和一个容量为V的背包。第i件物品的费用是w[i],价值是v[i],求将哪些物品装入背包可使价值总和最大。 基本思路 主要特征:每个物品只有一件,只有放与不放两种状态,设dp[i][j]表示重量限制为j时在前i个物品中能得到的最大价值 $$dp[i][j] = max(dp[ ...
分类:
其他好文 时间:
2019-10-25 23:30:36
阅读次数:
115
题目: https://www.acwing.com/problem/content/6/ 有 N 种物品和一个容量是 V 的背包。 第 ii 种物品最多有 si 件,每件体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。 输入格式 ...
分类:
其他好文 时间:
2019-10-25 20:24:51
阅读次数:
58
思路: 贪心 + dp 首先贪心按身长加手长排序, 也就是让最难出去的先出去 但也有可能有人手短身子长, 那他奉献自己可能更优 所以在加个背包dp 代码: cpp include include include include using namespace std; const int N = 2 ...
分类:
其他好文 时间:
2019-10-25 20:09:17
阅读次数:
71
题意 给定一个载重量为M的背包,考虑n个物品,其中第i个物品的重量 wi ,价值vi (1≤i≤n),要求把物品装满背包,且使背包内的物品价值最大。有两类背包问题(根据物品是否可以分割),如果物品不可以分割,称为0-1背包问题(动态规划);如果物品可以分割,则称为背包问题(贪心算法)。 代码 ...
分类:
编程语言 时间:
2019-10-25 19:56:38
阅读次数:
101
dp入门问题:01背包装下了我们的忧伤QWQ 作为一枚乐于作死...呸,乐于学习的蒟蒻,当然要学会装包的 那么简单的描述一下01背包问题: 小明有个bag,容量是m.小明面前有n个物品,每个物品有它的价值vi和它的体积wi,小明想知道用这个背包能装到的物品总价值最大是多少. 好,这就是一个最朴素的0 ...
分类:
其他好文 时间:
2019-10-25 18:03:43
阅读次数:
124
summary 分情况拿分保底真的很好用 像我这种辣鸡应该注意保底 打题不要慌 有条理 不要东一条西一条 小奇采药 对于 30% 的数据,O(2n ) 枚举取 or 不取 对于 60% 的数据,O(nm) 做 01 背包,即 f(i, j) 表示前 i 株 草药,耗费 j 的时间能达到的最?代价。 ...
分类:
其他好文 时间:
2019-10-25 16:32:21
阅读次数:
45
Karen and Supermarket题解 每个物品只对一个物品有依赖性,所以是一颗树的结构; 但是显然,$b$的范围是$1 using namespace std; const int N=5006; int n,t,w,siz[N],c[N],d[N],cnt=0,head[N],f[N][ ...
分类:
其他好文 时间:
2019-10-24 09:29:21
阅读次数:
113