先把收益为正数的处理掉:策略是挨个扫,扫n遍,碰到能买的就买,然后可以得到一个更新后的r 剩下的就看做是一个背包模型:物品(a,b)表示当背包体积>a时才能装下体积为b的该物品,问最多装几个 无序枚举所有物品显然错误,要选择先买哪个更优 对于两个物品(ai,bi),(aj,bj),有两种顺序 先买i,则至少需要max(ai,aj+bi)的体积 先买j,则至少需要max(aj,ai+bj)的体积 因为每买一件物品,剩余体积必定下降,为了达到某种状态,我们必须选择那种需要体积小的顺序 那么比较 aj…