给出一个森林,每棵树均为一组物品,首先推出每棵树可以组成的物品种类。
然后是基本的分组背包模板。
即 最外层枚举组数,次外层枚举背包容量,内层枚举物品体积。
对于每棵树有 ans[root][i+j] = ans[root][ i ] + ans[son][ j ]。
题水数据也水,不多说了。
#include
#include
#include
#include
#in...
分类:
其他好文 时间:
2014-07-22 23:05:52
阅读次数:
387
题目:
链接:点击打开链接
题意:
xx喜欢收集鞋子,n,m,k分别表示鞋子的总数,xx的钱和鞋子的品牌数目。然后给出每个鞋子的信息有:a,是那种品牌,b,鞋子的标价,c,收藏鞋子得到的价值。对于一个收藏家来说,每种品牌的鞋子只收集一种,求出xx能够得到的最大的收藏价值。
算法:
分组背包问题。
思路:
m总的钱数是背包...
分类:
其他好文 时间:
2014-06-04 22:55:34
阅读次数:
270
题目:
链接:点击打开链接
题意:
n个课程m天完成,a[i][j]表示用j天完成第i个课程得到的价值,求最大价值。
算法:
分组背包。
思路:
m天是总容量,n是组数。
代码:
#include
#include
#include
using namespace std;
int n,m;
int a[110][...
分类:
其他好文 时间:
2014-05-25 18:16:18
阅读次数:
223
我是个逗比。。。真心不是搞算法的料
不太中规中矩的分组背包,分组至少选一件商品。dp[i][j] 可以由当前dp[i-1][j-c] 和 dp[ i ][j-c]更新得到。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#pragma comment(link...
分类:
其他好文 时间:
2014-05-10 09:10:20
阅读次数:
301
http://acm.hdu.edu.cn/showproblem.php?pid=3033
大致题意:某人要买鞋子,有k种鞋,要求每种鞋至少买一双,给出每双鞋子的花费和价值,问m元钱可以买到的鞋子的最大价值是多少。
思路:分组背包问题。与传统的分组背包不同:每组物品至少取一件;且每组中物品任意取。
想一想传统的分组背包,每组至多选一件:
for 所有的组k
fo...
分类:
其他好文 时间:
2014-05-10 08:48:59
阅读次数:
325
昨晚Debug了好久始终找不出哪里错了,今早再一看发现自己已荣升逗比Beta 2.0 Version.
个人感觉此题为HDU 4003 的弱化版。
把每棵子树都看成一类商品,在每类商品中至多选一件。则问题转化为最基本的分组背包问题。
dp[s][c][k] c == 1时,表示在s结点不返回时走K的最大收益,c == 0时,表示在s结点重新返回时走k步的最大收益。
可以dfs从底到顶更新d...
分类:
移动开发 时间:
2014-05-07 04:52:22
阅读次数:
500
题意:
给定n个物品 m元,k种商品
下面n行 tpye w v 表示物品的牌子,价格,价值(每个物品只有1件)
问:每个牌子至少买一件能获得的最大价值是多少
思路:分组背包
#include
#include
#include
#include
#include
using namespace std;
#define ll int
ll n, m, k;
l...
分类:
其他好文 时间:
2014-05-04 18:03:15
阅读次数:
248
HDU 3033 I love sneakers! (01背包+反分组背包)...
分类:
其他好文 时间:
2014-05-04 08:51:09
阅读次数:
229