题干解析 题设给予宝石总数(n),背包空间大小(C)与每种宝石的价值(w),每个宝石所占空间大小(c)与数量(m),要求我们选择一种存储方式,使在不超过背包空间的前提下获得最大价值。 算法思路 多重背包问题。首先我们我们可以延续0/1背包的思路,将所有单个宝石看作一种宝石转化为0/1背包,这样做只需在原有的两层循环嵌入一层k从的循环即可。 但注意以上方案时间复杂度预计为最坏情况下n=100, 所有,总计进行数量级以上的计算,会超时,需要优化 一种简单的优化方向是进行二进制拆分后再转化为0/1背包。 假设某个宝石,我们不妨将25拆成集合,自行尝试一下,这五个数的任意组合的和能够覆盖0~25所有的...