问题4008--花之舞4008: 花之舞
时间限制: 1 Sec 内存限制: 512 MB
提交: 0 解决: 0
[提交] [状态] [讨论版] [命题人:]题目描述
现在Gromah又迷上了这首《花之舞》。
出于对这首曲子的喜爱,他正闭着眼睛欣赏这首曲子。
出于对这首曲子的喜爱,他真的打算去画很多在跳舞的花。→_→
出于对这首曲子的喜爱,他真的画了一排花,一共有n朵。因为每朵花都在跳舞,所以就会有各种各样的舞姿,而我们则采用0 – 9这10个数字对舞姿进行描述。即:每朵花的舞姿都唯一对应着0 – 9的某一个数字。
出于对这首曲子的喜爱,也出于对回文串的喜爱,Gromah想找到一些双倍回文的花朵子串,使得这些子串两两不互相重叠且长度总和最大。两个子串互相重叠当且仅当存在一朵花,既包含于其中一个子串,又包含于另外一个子串。
出于业界良心,下面对双倍回文做一个定义:
对于一个花朵串,记作T(从1开始编号),设其长度为len,如果对于任意的正整数i (i <= len),都满足T[i] = T[len – i + 1],那么这个花朵串T就是一个回文串。
设S为一个回文串,那么SS就是一个双倍回文串。反之亦然。
即:“S是一个回文串”与“SS是一个双倍回文串”互为充分必要条件。
输入
输入有2行。
第一行仅一个整数n,意义如题所述。
第二行有n个0 - 9之间的非负整数,该行第i个非负整数表示第i朵花的舞姿。每两个非负整数之间用一个空格隔开。
输出
输出仅一行一个整数,表示互不重叠双倍回文子串总长最大值。
样例输入
8
0 0 1 0 0 1 0 0
样例输出
6
【样例解释】
我们可以选择 [2, 7] 这一个双倍回文子串,长度为6。
当然,也可以选择 [1, 2],[4, 5],[6,7] 这三个双倍回文子串,总长也为6。
来源/分类
[提交] [状态]