4247: 挂饰

容易贪心的想到,既有挂钩又有正价值的点一定能加入,即可以把这个挂在手机上,把原来的接上去。

做这一步的时候要考虑原来是否已经有加入,有的话挂钩量要减一。

然后考虑对于负价值的点,令f[i]表示能提供i个挂钩的最小价值,做一遍dp

然后和原来的合并即可,因为原来的是按顺序加入,那么扫一遍就能得到最优方案了。

c++代码如下:

 

2018年9月28日 0 / /
Tag: 

1 + 2 =