题意:
有n升的酒(n*1000毫升);然后有m种瓶子,每种瓶子有最小装酒量,和最大装酒量(单位:毫升),瓶子数量不限.
问最少剩下多少酒不能装进去.
思路:
我们可以把酒瓶子分解,比如瓶子容量725 - 750;
我们就把它变成容量为725 到 750的26个瓶子.然后用完全背包做.
但是酒的量太大,直接做会超时,所以我们要剪枝.
我们可以想象,如果我们用10 - 15的瓶子装酒
那么一瓶可以装的范围是10 - 15
两瓶是20 - 30
三瓶是30 - 45
四瓶是40 - 60
我们可以发现,从第三瓶开始,范围已经交叠了.也就是30以上的酒,我们可以全部装进去.(我们把这个值称作这个瓶子的峰值把,就如果大于峰值,那么就可以用这个瓶子全部装完ÿ