摘要: 题目 有一个容量为V的背包和N种物品,第i件物品的体积是c[i] 价值是w[i] 共有n[i]件,请给出一种策略使得装入背包中的物品价值最高. 基本算法 和完全背包问题类似,区别是完全背包每种物品的数量是无限的而多重背包是有限的.可以仿照完全背包写出状态转移方程: 下面给出O(log amount) 阅读全文
posted @ 2017-08-30 17:39 lepeCoder 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 题目 "hdu 1171" 大意是有n类设备,每类设备的价值相同,要求将所有的设备分成价值尽量相等的两份. 分析 这是一个 "多重背包" 问题,而背包的容量就是价值的一半 多重背包的一个解法就是转化为01背包,将背包的数量属性直接反映为m个价值相等的01背包物品 AC代码 cpp include " 阅读全文
posted @ 2017-08-30 17:38 lepeCoder 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 题目 "hdu 2546" 分析 余额 =5就可以买任何商品(购买后余额可以为负),余额 n && n){ for(i = 0; i a[i]; cin m; int V = m 5; if(V ans){ ans = a[i]; ansi=i; } } a[ansi] = 0; for(i=0;i 阅读全文
posted @ 2017-08-30 17:37 lepeCoder 阅读(185) 评论(0) 推荐(0) 编辑