问题:
如果将P01、P02、P03混合起来。也就是说,有的物品只可以取一次(01背包),有的物品可以取无限次(完全背包),有的物品可以取的次数有一个上限(多重背包)。应该怎么求解呢?
01背包与完全背包的混合:
考虑到在P01和P02中给出的伪代码只有一处不同,故如果只有两类物品:一类物品只能取一次,另一类物品可以取无限次,那么只需在对每个物品应用转移方程时,根据物品的类别...
分类:
其他好文 时间:
2014-05-22 11:24:26
阅读次数:
205
题意:有十种珠宝用数字表示,现在给你每个珠宝的数量,问可不可以平均分给两个人。解题思路:DFS搜索可以写。将完全背包问题转换为搜索问题。具体代码:#include#include#includeusing
namespace std;int num[15],sum;bool dfs(int n,in...
分类:
其他好文 时间:
2014-05-22 03:26:34
阅读次数:
206
题目:
链接:点击打开链接
算法:
完全背包。
状态转移方程: dp[j] += dp[j-i];dp[j]表示钱j可以兑换的方法,,,,,i是硬币的价值1,2,3,,,个数是不限的
代码:
#include
#include
#include
using namespace std;
int dp[40000];
int n;
int main(...
分类:
其他好文 时间:
2014-05-18 15:43:08
阅读次数:
265
问题:
有N种物品和一个容量为V的背包。第i种物品最多有n[i]件可用,每件费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。
基本算法:
这题目和完全背包问题很类似。基本的方程只需将完全背包问题的方程略微一改即可,因为对于第i种物品有n[i]+1种策略:取0件,取1件……取n[i]件。令f[i][v]表示前i种物品恰...
分类:
其他好文 时间:
2014-05-18 08:34:52
阅读次数:
187
这是一题基础的完全背包,适合初学者来理解完全背包
题意:有 n 种债券可以买 , 每种债券的价格为 w , 每一年的收益为 p , 给你 wi 块钱 , 和 years 年的时间 , 我们最大的收益是是多少?
因为 , 每种债券可以买任意多个 , 所以这是一个简单的完全背包,但是由于基数(体积)太大 , 所以需要优化一下 :
由题意我们知道 , 每种债券的价格都是 10...
分类:
其他好文 时间:
2014-05-18 07:50:38
阅读次数:
251
题目:
链接:点击打开链接
题意:
知道存钱罐的质量和装满硬币的存钱罐的质量,然后是不同硬币的价值和质量,求出存钱罐里钱币的最小价值。
算法:
完全背包问题,银币的个数是不限的。
思路:
状态转移方程:j = 0时,价值为0
dp[j] = min(dp[j],dp[j-w[i]]+v[i]);//表示质量为j的钱币,含有的最小的价值
代码:
#...
分类:
其他好文 时间:
2014-05-18 04:02:59
阅读次数:
195
题目:
链接:点击打开链接
算法:
二维的完全背包;
思路:
状态转移方程:dp[j][m] = max(dp[j][m],dp[j-b[i]][m-1]+a[i]);表示用j的忍耐度杀死m个怪兽能够得到的最大的经验值。
代码:
#include
#include
#include
using namespace std;
int dp[110][110];...
分类:
其他好文 时间:
2014-05-18 03:05:42
阅读次数:
338
题目:
有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。
思路:
这个问题非常类似于01背包问题,所 不同的是每种物品有无限件。也就是从每种物品的角度考虑,与它相关的策略已并非取或不取两种,而是有取0件、取1件、取2件……等很多种。如果仍然按照解 0...
分类:
其他好文 时间:
2014-05-16 01:37:51
阅读次数:
235
有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的体积是c,价值是w。将哪些物品装入背包可使这些物品的体积总和不超过背包容量,且价值总和最大。...
分类:
其他好文 时间:
2014-05-11 21:19:09
阅读次数:
400