《Inventory is Full》题目分析
这道题有一个很直观的贪心算法,就是每个格子都选单格价值最高的物品。
比如一格可以放10枚金币,每个金币价值是1,那么单格金币的价值就是10。再比如一格可以放5颗钻石,每颗钻石价值是10,那么单格钻石的价格就是50。
不过考虑到每种物品的总数有限,可能有不足单格最大堆叠数量的情况,我们需要把一种物品拆成2种物品。
比如我有27枚金币,我们拆成“金币”和“剩余金币”两种物品。“金币”单格价值是10,一共有2格。“剩馀金币”单格价值是7,一共有一格。
这样把所有物品都拆成2种之后,按单格价值从高到底选择就可以了。
用long long刚刚够