题目描述
题解
这道题可能就是比较经典的费用提前的题吧,但是我考场上莫有想到可能是忘记了吧。
对于费用计算,我们可以这么理解:对于每一件物品,当它使用过以后其他物品的价值都会下降。因此我们在当前状态的时候就减去一个下降的值,这样其他的每一件物品在通过这个状态转移的时候就会下降了。
理解了这么一个思想,我们就有一个问题,就是减去的值为多少呢?我们发现,若这个物品被选的顺序是倒数第一,那么就不选;如果是倒数第二,那就减去一倍的 w w w;倒数第三时,有两个数要减去 w w w,所以在当前状态转移 2 2 2倍的 w w w。一次类推,如果是倒数第 n n n,就减去 ( n − 1 ) (n-1) (n−1)倍的 w w w即可。
除此之外,因为选的顺序是没有要求的,更小的先选会减的更小,所以我们从小到大选取。由于在状态转移的时候需要倒序枚举,所以我们从大到小排序即可。
我们设 f [ i