题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”。今天一早,金明就开始做预算了,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些 ...
分类:
其他好文 时间:
2017-03-21 10:32:04
阅读次数:
229
1、背包问题。0/1背包、完全背包、多重背包、分组背包、依赖背包。 2、子序列。最长非上升/下降子序列、最长先上升再下降子序列、最长公共子序列、最大连续子区间和。 3、最大子矩阵。 4、区间dp。 5、环形dp。 6、树形dp。 7、最少线段覆盖(codevs1214) ...
分类:
其他好文 时间:
2016-08-03 18:42:59
阅读次数:
306
背包(0/1背包,完全背包,多重背包,分组背包,简单依赖背包,复杂依赖背包转化为树形dp) LIS 最长单调递增子序列 LCS 最长公共子序列 环形dp 树形dp 状态压缩dp 单调dp 求LCS(最长公共子序列)的长度的nlogn算法可以通过转换为求一个数列的LIS。与动归的n^2复杂度相比。 假 ...
分类:
其他好文 时间:
2016-04-28 16:56:47
阅读次数:
129
The more, The Better Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 6765 Accepted Submission(s):
分类:
其他好文 时间:
2016-02-13 19:32:17
阅读次数:
260
题目: 链接:点击打开链接 题意: 非常明显的依赖背包。 思路: dp[i][j]表示以i为根结点时攻击j个城堡得到的最大值。(以i为根的子树选择j个点所能达到的最优值) dp[root][j] = max(dp[root][j],dp[root][k]+dp[u][j-k]); u递归根结点,ro
分类:
其他好文 时间:
2016-01-27 23:00:31
阅读次数:
152
依赖背包 事实上,这是一种树形DP,其特点是每个父节点都需要对它的各个儿子的属性进行一次DP以求得自己的相关属性。fj打算去买一些东西,在那之前,他需要一些盒子去装他打算要买的不同的物品。每一个盒子有特定要装的东西(就是说如果他要买这些东西里的一个,他不得不先买一个盒子)。每一种物品都有自己的价值,...
分类:
其他好文 时间:
2015-09-26 15:55:02
阅读次数:
172
//给n种箱子子
//买下每种箱子后才能买需要这种箱子能装的物品
//依赖背包
#include
#include
#include
using namespace std ;
const int maxn = 100010 ;
int dp[maxn] ;
int tmp[maxn] ;
int main()
{
int n , m ;...
分类:
其他好文 时间:
2015-07-31 16:26:26
阅读次数:
125
题意:给n个箱子,每个箱子有个费用pi,每个箱子里面有m个物品,每个物品有两个属性,一个费用wi和一个价值vi。买物品的时候要把所属的箱子一起买了,问给一个金额W最多能获得多少价值?思路依赖背包。《背包九讲》的第七讲讲了这个。
设dp[i][j]为前i个箱子使用金额j获得的最大价值。
考虑每个箱子内部就是一个01背包,那么在枚举每一个箱子的时候,使用上一轮能满足本轮箱子费用的状态做一个01背包,...
分类:
其他好文 时间:
2015-07-16 09:49:44
阅读次数:
220
HDU 1561。这道是树形DP了,所谓依赖背包,就是选A前必须选B,这样的问题。1561很明显是这样的题了。把0点当成ROOT就好,然后选子节点前必须先选根,所以初始化数组每一行为该根点的值。由于多选了0点,所以记得把m++.#include #include #include #include ...
分类:
其他好文 时间:
2015-05-16 21:49:18
阅读次数:
173
1 /* 2 即物品间存在依赖,比如i依赖于j,表示若选物品i,则必须选物品j 3 http://acm.hdu.edu.cn/showproblem.php?pid=3449 4 有很多个箱子,想买箱子中的物品必须先买下箱子,典型的依赖背包 5 将不依赖其他物品的物品称为主件,依赖其他物品的物品....
分类:
其他好文 时间:
2015-02-08 19:22:41
阅读次数:
192