bzoj#P1090. [SCOI2003]字符串折叠

[SCOI2003]字符串折叠

题目描述

折叠的定义如下:

  1. 一个字符串可以看成它自身的折叠。记作 S=SS=S
  2. X(S)X(S)X(X>1)X(X>1)SS 连接在一起的串的折叠。记作 X(S)=SSSSSX(S) = SSSS…SXXSS)。
  3. 如果 A=A,B=BA = A',B = B',则 AB=ABAB = A'B' 。例如:因为 3(A)=AAA,2(B)=BB\mathtt{3(A) = AAA,2(B) = BB}, 所以 3(A)C2(B)=AAACBB\mathtt{3(A)C2(B) = AAACBB},而 2(3(A)C)2(B)=AAACAAACBB\mathtt{2(3(A)C)2(B) = AAACAAACBB}

给一个字符串,求它的最短折叠。例如 AAAAAAAAAABABABCCD\mathtt{AAAAAAAAAABABABCCD} 的最短折叠为:9(A)3(AB)CCD\mathtt{9(A)3(AB)CCD}

输入格式

仅一行,即字符串 SS

输出格式

仅一行,即最短的折叠长度。

NEERCYESYESYESNEERCYESYESYES
14

数据规模与约定

SS 的长度保证不超过 100100

提示

一个最短的折叠为:2(NEERC3(YES))\mathtt{2(NEERC3(YES))}