CodeForces - 455A Boredom(一维DP)

第一篇题解…
今天下午被DP搞懵了,写写题解,帮自己理一下思路,顺便帮助一下同样遇到困难的人hhh
大概的思路和AC代码都放在下面了,代码里还有一些相应的注释。
找出状态转移方程之后就是很简单的问题了。(虽然我也是看了题解才找出来的…
————————————————————————————————————

原题

CodeForces - 455A Boredom

题意

一组数据,从其中选择一个a[k]删除,同时删除值为a[k]-1和a[k]+1的所有数据。
将a[k]的值加到ans,求最大的ans。

思路

一维DP。
设f[i-1]为从1到i-1可以得到的最大ans,则f[i]只取决于f[i-1]。
由最优化原理,可以使用DP。
如果取i-1,则不能取i;如果不取i-1,则可以取i。
则状态转移方程为:f[i]=max(f[i-1], f[i-2]+i*cnt[i])
cnt[i]为数据i出现的次数,因为若想使ans最大,则优先取同样的值。

代码

#include <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值