2013年10月29日

POJ1276 - Cash Machine(多重背包)

摘要: 题目大意给定一个容量为M的背包以及n种物品,每种物品有一个体积和数量,要求你用这些物品尽量的装满背包题解就是多重背包~~~~用二进制优化了一下,就是把每种物品的数量cnt拆成由几个数组成,1,2,4,~~~cnt-2^K+1,k满足cnt-2^K+1>0的最大整数,体积和价值乘上相应的数就是相应物品的价值和体积,这样用这些物品能够表示1~~cnt所有的情况~~~这就转化成01背包了~~~代码:#include #include #include #include #include using namespace std;#define MAXN 100005int dp[MAXN];in 阅读全文

posted @ 2013-10-29 12:22 仗剑奔走天涯 阅读(363) 评论(0) 推荐(0) 编辑

导航