动态规划经典(背包问题)
chendadayan
这个作者很懒,什么都没留下…
展开
-
0-1 背包问题总结
01背包问题总结 一 问题描述: 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。 所谓01背包,表示每一个物品只有一个,要么装入,要么不装入。二 解决方案: 考虑使用dp问题 求解,定义一个递归式 opt[i][v] 表示前i个物品,在背包容量大小为v的情况下,最大的装载量。原创 2013-08-07 16:45:00 · 827 阅读 · 0 评论 -
完全背包问题总结
完全背包问题: 一问题描述: 有N种物品和一个容量为V的背包,每种物品都有无限件可用。 第i种物品的费用是c[i],价值是w[i]。 求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 二问题实质: (1)与 01 背包不同,每个物品有多个,每种物品可以选择k个。 且必须有 c[i] * k 解决方原创 2013-08-07 16:47:37 · 607 阅读 · 0 评论 -
二维背包问题
二维背包问题 一 问题描述: 二维费用的背包问题是指: 对于每件物品,具有两种不同的费用; 选择这件物品必须同时付出这两种代价;对于每种代价都有一个可付出的最大值(背包容量)。 问怎样选择物品可以得到最大的价值。设这两种代价分别为代价1和代价2, 第i件物品所需的两种代价分别为a[i]和b[i]。两种代价可付出的最大值(两种背包容量)分别为V和U。物品的价值为w[原创 2013-08-07 16:51:07 · 1132 阅读 · 0 评论 -
分组背包问题
一问题描述: 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。 这些物品被划分为若干组,每组中的物品互相冲突,最多选一件。 求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。二 解决办法: 第k组解决办法如下: f[k][v] = max(f[k-1][v] , f[k-1][v-c[i]] + w[i]原创 2013-08-09 09:14:41 · 734 阅读 · 0 评论 -
hdu 2159 FATE
二维背包,dp[i][j]表示忍耐度为i,且还可以杀j个怪时能获得的最大经验值dp[i][j]=max(dp[i][j],dp[i-r[k]][j-1]+e[k]),r[k]为杀死第k种怪掉的忍耐度,e[k]为第k种怪的经验值注意方程转移时,我们必须要保证考虑第j个阶段时,我们只放入背包中1个怪,也就是说,必须做01背包,不能做完全背包一开始先枚举的就,再枚举k,再从小到大枚举i,这样原创 2013-08-08 20:22:38 · 587 阅读 · 0 评论