选择某个值 x 时,会得到 x×cnt[x] 分,并且值 x−1 与 x+1 都不能再选。相同值的所有出现应当一起选取。
于是问题转化为在 1∼M(M=105)上做选择:相邻整数不能同时选,目标是得分最大。这是经典的线性 DP。
令 dp[0][i] 表示只考虑不超过 i 的值、且不选取 i 时的最高分;dp[1][i] 表示选取所有等于 i 的数时的最高分。转移为:
[
给定长度为 n 的正整数数组 a1,a2,…,an。你可以多次进行如下操作:选择一个尚未被删除的数 x,获得 x 分,并删除数组中所有等于 x 的数,同时删除所有等于 x−1 或 x+1 的数(被连带删除的数不得分)。已被删除的数不能再被选择。 你可以进行任意多次操作(也可以一次都不做),求能获得的最高总分。
约束条件:
第一行包含一个正整数 n,表示数组长度。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册