#P1114. 小可玩游戏
小可玩游戏
题目描述
小可最近在他的手机上安装了一个新游戏。在这个游戏中,存在一行 个宝石,其中第 个宝石的颜色为 。游戏的目标是尽快地摧毁这一行中的所有宝石。
在每一秒内,小可可以选择一个恰好是回文的连续子串颜色的宝石,并将其从这一行中移除。移除子串后,剩余的宝石会重新排列成一行。请问,摧毁整行宝石所需的最少秒数是多少?
提醒一下,如果一个字符串(或子串)正读和反读都一样,那么它被称为回文。这意味着第一个宝石的颜色等于最后一个宝石的颜色,第二个宝石的颜色等于倒数第二个宝石的颜色,以此类推。
输入格式
输入的第一行包含一个整数()——宝石的数量。
输入的第二行包含 个用空格分隔的整数,其中第 个整数是 ()——这一行中第 个宝石的颜色。
输出格式
输出一个整数——摧毁整行宝石所需的最少秒数。
样例
3
1 2 1
1
3
1 2 3
3
7
1 4 4 2 3 2 1
2
提示
在第一个示例中,小可可以在一秒内摧毁整行宝石。 在第二个示例中,小可每次只能摧毁一个宝石,所以摧毁三个宝石需要三秒。 在第三个示例中,为了达到最优时间两秒,小可首先摧毁回文,然后摧毁回文。
数据范围
见输入格式。