我们发现选哪件相同大小的物品都是一样的,所以尽量填满背包,在选的时候直接挑最大的。
我们又注意到当 N>2N\gt 2N>2 且 M>2M\gt 2M>2 且有足够多的 1×31\times 31×3 的物品时,不管放多少个 1×21\times 21×2 的物品都能使剩余面积最小值小于 333。
所以我们可以分类讨论:
1. 当 N,MN,MN,M 足够大时,我们枚举填 1×21\times 21×2 物品的个数,用面积计算最多放置 1×31\times 31×3 的物品个数,得出最小值。
2. 当 N,MN,MN,M 非常小时,我们直接暴力计算。
时间复杂度 O(T×N×M)O(T\times N\times M)O(T×N×M)。
为什么我要预处理这么多项前缀和?理由如下:
请输入文本