A7001. [SCOI2003] 字符串折叠
编程题
提高+/省选-
知识点
题目描述
折叠的定义如下:
1. 一个字符串可以看成它自身的折叠。记作 ``
2. ``
3. 如果 ``
给一个字符串,求它的最短折叠。
例如 ``
1. 一个字符串可以看成它自身的折叠。记作 ``
S = S``2. ``
X(S)` 是 $X$ 个 `S` 连接在一起的串的折叠。记作 `X(S) = SSSS…S``。3. 如果 ``
A = A’`, `B = B’`,则 `AB = A’B’ `。例如:因为 `3(A) = AAA`, `2(B) = BB`,所以 `3(A)C2(B) = AAACBB`,而 `2(3(A)C)2(B) = AAACAAACBB``给一个字符串,求它的最短折叠。
例如 ``
AAAAAAAAAABABABCCD` 的最短折叠为:`9(A)3(AB)CCD``。输入格式
仅一行,即字符串
S,长度保证不超过 $100$。输出格式
仅一行,即最短的折叠长度。
输入输出样例
输入 #1
NEERCYESYESYESNEERCYESYESYES
输出 #1
14
说明/提示
一个最短的折叠为:
保证 $100 \%$ 的数据满足字符串 $S$ 由大写字母构成。
2(NEERC3(YES))保证 $100 \%$ 的数据满足字符串 $S$ 由大写字母构成。