摘要: 简单背包,不过直接背包会超时,需要将每一种物品个数转化一下,方法是:将第i种物品分成若干件物品,其中每件物品有一个系数,这件物品的费用和价值均是原来的费用和价值乘以这个系数。使这些系数分别为 1,2,4,...,2^(k-1),n[i]-2^k+1,且k是满足n[i]-2^k+1>0的最大整数。例如,如果n[i]为13,就将这种 物品分成系数分别为1,2,4,6的四件物品。代码如下:#include<iostream>#include<cstdio>#include<cstring>using namespace std;int coin[7],res 阅读全文
posted @ 2012-04-20 11:06 书山有路,学海无涯 阅读(463) 评论(0) 推荐(0) 编辑