背包问题(01背包、完全背包、部分背包)
摘要:
之前写过一篇博客,这次看了下背包九讲,主要看的是部分背包的优化解法,转化的很巧妙,时间复杂度可以达到O(n*∑log(amount[i])*V),就是把原先每个背包的数量分成一堆一堆的。例如,假如物品i有14件,那么我们可以将它转化成若干个01背包问题,这几个子问题的背包价值和代价为1*price,1*cost,2*price,2*cost,4*price,4*cost, 7*price, 7*cost,这样我们总可以将1-13之内的数用这几个数来表示,一般的对于一个amout,我们只需要找到最大k,使得amout-2^(k+1) > 0. 这种优化方法,可以简单的这么理解,就是对于每一 阅读全文
posted @ 2012-10-10 16:18 buptLizer 阅读(3042) 评论(0) 推荐(1)
浙公网安备 33010602011771号