题目:有n个人分成两组,两组人数差不能超过1,找到两组的人重量之差的最小值。
分析:dp,状态压缩01背包。zoj1880升级版。
首先,考虑二维背包。
因为必须放在两个组中的一组,直接背包所有可到状态,取出相差不超过 1的最接近 sum/2的值即可。
然后,优化。
如果直接利用二维背包,由...
分类:
其他好文 时间:
2014-12-10 10:50:08
阅读次数:
120
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3496题意:题意是 DuoDuo 想看n部电影,但是被要求最长能看的总时间数为 L,每部电影有他的时长和DuoDuo对他的评价值两个属性。 但是商店有个奇怪的要求 一次只卖恰好m 个电影碟 (m#incl...
分类:
其他好文 时间:
2014-12-08 17:27:30
阅读次数:
152
给定n种物品和一背包。物品i的重量是wi,体积是bi,其价值为vi,背包的容量为C,容积为D。问应如何选择装入背包中的物品,使得装入背包中物品的总价值最大?在选择装入背包的物品时,对每种物品i只有两种选择,即装入背包或者不装入背包。不能将物品i装入背包多次,也不能只装入部分的物品i。试设计一个解此问...
分类:
其他好文 时间:
2014-11-22 15:54:57
阅读次数:
137
int MaxValue(int n,int j,int *w,int k,int *b,int *v,int ***m) { int t = max(w[n],b[n]); for(int i = 1;i1;i--) { t = max(w[i],b[i]); for(int j1 = 1;j1....
分类:
其他好文 时间:
2014-11-22 14:36:42
阅读次数:
96
题目:给你n个数字,从中取出m个,使得他们的和能整除d,问有多少种取法。
分析:dp,二维01背包。整数拆分用背包。
首先,将所有的点对d取余数,则所有数字均在整数区间[0,d)上;
然后,确定背包容量,最大为20*10 = 200,计算二维01背包;
最后,求出所有能整除d的整数取法的和即可。
说明:注意使用long l...
分类:
其他好文 时间:
2014-11-19 01:37:17
阅读次数:
168
题目:javaman来到了一个城市,这里有很多长着金币的树,每棵树每晚还会结出新的金币,
现在他每天白天只能砍一棵树,最多在这里呆m天,求能得到的最大金币数。
分析:贪心+dp,二维01背包。如果砍树的集合确定,那一定按照b递增的顺序砍,因此排序后背包。
说明:(2011-11-02 05:49)。
#include
#include
#include
#de...
分类:
其他好文 时间:
2014-10-10 00:59:35
阅读次数:
236
题目:二维01背包。
分析:因为必须放在两个组中的一组,直接背包所有可到状态,
取出相差不超过 1的最接近 sum/2的值即可。
说明:430ms。。。好慢啊。。。
#include
#include
#include
int f[ 52 ][ 22501 ];
int h[ 101 ];
int main()
{
int n,sum;
...
分类:
其他好文 时间:
2014-09-29 03:22:57
阅读次数:
221
FATETime Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3051Accepted Submission(s): 1297http://acm.hdu...
分类:
其他好文 时间:
2014-08-26 22:44:16
阅读次数:
223
中文题目就不用解释了 就是裸的二维完全背包
d[i][j]表示消耗i忍耐杀j个怪最多可获得的经验 然后就用完全背包来做了 二维背包背包不过是多了一重循环...
分类:
其他好文 时间:
2014-08-10 10:28:00
阅读次数:
247