传统题 1000ms 256MiB

remove

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

某系统记录了一串按时间顺序出现的条目,共 nn 个。第 ii 个条目携带一个正整数标记 xix_i

你可以从这串条目中移除若干个(也可以一个不删)。移除后,剩余条目会自动向前对齐,且相对先后顺序保持不变。设最终剩余条目数为 mm,新的序列为:

(y1,y2,,ym)(y_1, y_2, \dots, y_m)

定义该结果的“对齐分数”为:

  • 对每个位置 i[1,m]i \in [1, m],如果 yi=iy_i = i,则贡献 11 分,否则贡献 00 分。
  • 总分为所有位置的贡献之和。

你的任务是:通过选择移除方案,使对齐分数最大,并输出这个最大值。

输入格式

第一行输入一个正整数 nn。 第二行输入 nn 个正整数 x1,x2,,xnx_1, x_2, \dots, x_n

输出格式

输出一行一个整数,表示最大对齐分数。

输入输出样例

输入 #1

9
9 1 8 2 7 3 5 6 4

输出 #1

4

样例解释

一种最优做法是只保留标记为 1,2,3,41, 2, 3, 4 的四个条目,并保持其原有顺序。紧凑后得到序列:

(1,2,3,4)(1, 2, 3, 4)

此时:

  • y1=1y_1 = 1(匹配,+1+1 分)
  • y2=2y_2 = 2(匹配,+1+1 分)
  • y3=3y_3 = 3(匹配,+1+1 分)
  • y4=4y_4 = 4(匹配,+1+1 分)

总对齐分数为 44。可以证明无法取得更高分数。

数据范围与提示

对于所有数据,满足 1n1051 \le n \le 10^51xi1061 \le x_i \le 10^6

子任务(Subtasks)分配如下:

  • Subtask 1 (20 pts): n2000n \le 2000
  • Subtask 2 (15 pts): n5×104, xi2000n \le 5 \times 10^4, \ x_i \le 2000
  • Subtask 3 (15 pts): 保证序列 ixii - x_i 非递减,即对于所有 1i<n1 \le i < n,满足 (ixi)(i+1xi+1)(i - x_i) \le (i+1 - x_{i+1})
  • Subtask 4 (20 pts): 保证输入序列严格递增,即 x1<x2<<xnx_1 < x_2 < \dots < x_n
  • Subtask 5 (30 pts): 无特殊限制。

元旦模拟赛(CSP-S)

未参加
状态
已结束
规则
OI
题目
4
开始于
2026-1-2 14:00
结束于
2026-1-2 17:30
持续时间
3.5 小时
主持人
参赛人数
17