华为od 学生重新排队
dp[i][j] : 从下标 0 到下标 i ,保留若干个元素,且一定保留 a[i],形成 j 个段的最大保留数量。
考虑最优的情况, 我们选择了k个数字拿出,此时还剩下n-k个数字,他们所形成的段数一定不超过m段。
证明:如果超过m段,则一定存在同一个分组的两个元素分隔开,此时无论将k个数字如何插入,都不能形成m段。矛盾。
此时我们将问题了转化为:剩余段数<m段时,求最大保留数。
dp[i][j] : 从下标 0 到下标 i ,保留若干个元素,且一定保留 a[i],形成 j 个段的最大保留数量。
考虑最优的情况, 我们选择了k个数字拿出,此时还剩下n-k个数字,他们所形成的段数一定不超过m段。
证明:如果超过m段,则一定存在同一个分组的两个元素分隔开,此时无论将k个数字如何插入,都不能形成m段。矛盾。
此时我们将问题了转化为:剩余段数<m段时,求最大保留数。
相关推荐