#M0016. 清空书架
清空书架
题目背景
图书馆要搬家了。小 Z 负责清空一个长长的书架,书架上的书一本挨着一本排成一行,每本书有一种颜色。为了省力,小 Z 每次都想一口气抱走尽量多的书,可是他发现抱走的书必须颜色一样,否则会被管理员批评。
题目描述
本题使用文件输入输出:输入文件名为 shelf.in,输出文件名为 shelf.out。
书架上从左到右放着 本书,第 本书的颜色是 。
小 Z 每次操作可以选择书架上连续的一段书,要求这一段书的颜色全部相同,然后把这一段书全部拿走。拿走后,右边的书会向左挪,补上空位,也就是说原来被隔开的书会变成相邻的。
请你求出小 Z 最少要操作多少次才能把书架清空。
输入格式
输入文件名为 shelf.in。
第一行一个整数 。
第二行 个整数 ,相邻两个数之间用一个空格隔开。
输出格式
输出文件名为 shelf.out。
一行一个整数,表示最少的操作次数。
样例 1 输入
5
1 2 2 1 3
样例 1 输出
3
样例 1 解释
第一次拿走中间的两本颜色为 的书,书架变成 1 1 3;第二次拿走两本颜色为 的书,书架变成 3;第三次拿走最后一本。共 次。
可以证明不存在只用 次的方案。
样例 2 输入
5
1 2 1 3 1
样例 2 输出
3
样例 2 解释
第一次拿走颜色为 的书,书架变成 1 1 3 1;第二次拿走颜色为 的书,书架变成 1 1 1;第三次把三本颜色为 的书一起拿走。
注意:三本颜色为 的书最初互不相邻,但在拿走其它书之后可以在一次操作中一起拿走。
样例 3
见附件 shelf3.in 与 shelf3.ans。
这个样例满足 。
样例 4
见附件 shelf4.in 与 shelf4.ans。
这个样例满足所有测试点的最大规模。
数据范围
对于所有测试点,保证 ,。
| 测试点编号 | |
|---|---|
相关
在下列比赛中: