3672: 挑战
内存限制:256 MB
时间限制:1.000 S
评测方式:文本比较
命题人:外部导入
提交:1
解决:1
题目描述
定义一个游戏,一些规则如下:
1、 一个字符串X被称为字符串Y的同构串当且仅当构成X和Y的字母完全相同(不计次次序),如“baba”与“abab”,“aabb”,“abba”互为同构串。
2、 一个字符串X被称为字符串Y的 子序列当且仅当X可以通过将Y去掉若干个字母而不改变相对顺序获得,如“ac”,“abd”,“abcd”都是“abcd”的子序列。
3、 一个字符串X被称为字符串Y的同构子序列当且仅当存在一个字符串Z,使得X是Z的同构串,Z是Y的子序列。
现在要求把一个给定字符串S从中间分开成m个子串S1,S2,…,Sm,使得S1+S2+…+Sm=X,且对于任意i<m,Si是S[i+1]的同构子序列。
求最大化m。
输入
第一行包含一个整数n,表示字符串的长度。
第二行为1个长度为n的字符串,仅包含大写字母。
输出
输出仅一行,一个整数,为最多可以分成的块数。
样例输入 复制
6
ABABAB
样例输出 复制
3
提示
对于20%的数据:n <= 10。
对于50%的数据:n <= 100。
对于100%的数据:n <= 500。