Type: Default 1000ms 256MiB

数列删除

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

给你一个长度为 n(1n500)n(1 \le n \le 500) 的数组 aa,每次你可以进行以下两步操作:

  • 找到两个数相邻且相等的数,ai=ai+1a_i=a_{i+1}
  • 它们 替换为 ai+1a_i + 1

每轮操作之后,显然数组的长度会减小 11,问剩余数组长度的最小值。

输入格式

第一行包含一个整数 n(1n500)n(1 \le n \le 500),表示数组的原长。

第二行包含 nn 个整数 a1,a2,an(1ai1000)a_1, a_2, \cdots a_n (1 \le a_i \le 1000),表示原数组 aa

输出格式

共一行仅一个整数 numnum,表示进行许多轮操作之后,aa 剩余长度的最小值。

样例解释

第一组样例中,最优操作之一为 $\text{4 3 2 2 3} \to \text{4 3 3 3} \to \text{4 4 3} \to \text{5 3}$

第二组样例中,最优操作之一为 $\text{3 3 4 4 4 3 3} \to \text{4 4 4 4 3 3} \to \text{4 4 4 4 4} \to \text{5 4 4 4} \to \text{5 5 4} \to \text{6 4}$

对于第三和第四组样例,你并不能进行任何操作。

5
4 3 2 2 3
2
7
3 3 4 4 4 3 3
2
3
1 3 5
3
1
1000
1

0315

Not Attended
Status
Done
Rule
XCPC
Problem
6
Start at
2026-3-15 14:00
End at
2026-3-15 17:21
Duration
3.4 hour(s)
Host
Partic.
82