#6566. 新视频游戏 (Нова видео-игра)
新视频游戏 (Нова видео-игра)
题目名称:新视频游戏 (Нова видео-игра)
题目背景
梅隆软件公司正在开发一款视频游戏,共有 个关卡。每个开发人员负责一个关卡,并为该关卡设定了难度分值(范围从 到 )。 客户要求游戏关卡必须按难度非递减(即 )的顺序排列。
核心规则
- 现有状态:关卡的原始顺序已经确定,不能随意交换位置。
- 唯一操作:团队负责人可以执行且仅能执行一次区间翻转操作——选择一个起始位置和结束位置,将该区间内的关卡顺序完全反转。
- 最终步骤:翻转(可选)之后,系统会运行一个算法,通过删除最少数量的关卡,使得剩下的关卡难度呈非递减排列。这等价于求翻转后序列的最长不下降子序列 (LNSS) 的长度。
任务
求在最优地选择翻转区间后,游戏最多能保留多少个关卡。
输入格式
- 第一行:两个整数 (关卡数,)和 (最大难度,)。
- 第二行: 个整数 (每个关卡的难度,)。
输出格式
- 输出一个整数,代表经过一次最优翻转后,最长不下降子序列的最大长度。
数据范围与限制
- 20% 数据:。
- 30% 数据:不需要翻转(即原序列的 LNSS 长度即为最优)。
- 时间限制:150 毫秒(非常严格)。
- 内存限制:64 兆字节。
样例分析
输入:
6 6
1 3 4 3 2 6
过程:
- 原始序列:
1 3 4 3 2 6,LNSS 长度为 4(如1 3 3 6)。 - 选择翻转区间
[2, 5](即元素3 4 3 2),序列变为:1 2 3 4 3 6。 - 此时 LNSS 长度为 5(
1 2 3 4 6或1 2 3 3 6)。 输出:
5