思路
01背包dp,需要注意的是物品过了d[i]秒后就会焚毁,这使得背包的选取顺序影响了dp的更新。这是为什么呢?考虑我们背包的过程,我们为了避免选取顺序的影响强制给了背包一个顺序,而由于我们先放了a大小的,后面b大小只要空间足够的肯定能放,反之亦然。也就是说背包的选取顺序对dp的更新没有影响。但是这里因为物品焚毁,如果我们先放了a大小的结果发现b已经焚毁了就没法更新状态了,但实际上我们能把先焚毁的b放进去来更新状态,所以我们将d排序后再跑背包dp,这样保证了先焚毁的能更新后焚毁的物品的状态。
代码
1 |
|