zz能够在一秒钟内精确地选择一个连续的彩色宝石回文子串,并将其从行中删除。在子串被移除后,剩余的宝石再次移动形成实线。摧毁整条线所需的最小秒数是多少?
让我们提醒一下,如果向后或向前读取相同的字符串(或子字符串),则称为回文。在我们的例子中,这意味着第一颗宝石的颜色等于最后一颗宝石的颜色,第二颗宝石的颜色等于倒数第二颗宝石的颜色,以此类推。
第一行输入包含单个整数n(1≤n≤500)−宝石的数量。
第二行包含n个以空格分隔的整数,第i个整数为ci(1≤ci≤n)−一行中第i个宝石的颜色。
3 1 2 1
1
3 1 2 3
3
7 1 4 4 2 3 2 1
2
在第一个样本中,zz可以在一秒钟内摧毁整个系列。
在第二个样本中,zz一次只能摧毁一个宝石,所以摧毁三个宝石需要3秒。
在第三个样本中,为了达到2秒的最佳时间,首先销毁回文4 4,然后再销毁回文1 2 3 2 1。
3
1 2 1
1
在第一个样本中,zz可以在一秒钟内摧毁整个系列。
在第二个样本中,zz一次只能摧毁一个宝石,所以摧毁三个宝石需要3秒。
在第三个样本中,为了达到2秒的最佳时间,首先销毁回文4 4,然后再销毁回文1 2 3 2 1。