摘要: *题意: 给定一定的金额cash,在给出n中货币,每种货币有一定的数量。问:在不超过cash的条件下,用给定货币组成最接近cash的金额数是多少。*思路: 完全背包问题+数量限制。要实现并不困难,不过由于数据较大,以上思路有三重循环会TLE。所以,必须优化。至于优化,可以选择二进制优化,或者把循环去掉一层。 1.二进制优化是把物品个数用二进制数表示出来,以减少循环次数。 2.去掉物品书的那层循环:因为我们在计算dp[i+1][j],枚举物品数量k>=1的情况时,与在计算dp[i+1][j-d[i]],枚举的k>0的情况恰好相同,所以我们可以不用在用到k循环达到优化的效果。二维数.. 阅读全文
posted @ 2013-09-28 21:43 Neptunes 阅读(312) 评论(0) 推荐(0) 编辑