CF825F String Compression
题目描述
伊万想给他的朋友写一封信。这封信是一个只包含小写拉丁字母的字符串 $s$。
不幸的是,当伊万刚刚开始写信时,他意识到这封信实在太长了,全部写完会花费很长时间。因此,他想写字符串 $s$ 的压缩版本,而不是直接写这个字符串本身。
字符串 $s$ 的压缩版本是若干字符串的序列 $c_{1},s_{1},c_{2},s_{2},...,c_{k},s_{k}$,其中 $c_{i}$ 是数字 $a_{i}$ 的十进制表示(不包含前导零),$s_{i}$ 是由小写拉丁字母组成的某个字符串。如果伊万按照顺序将字符串 $s_{1}$ 重复写 $a_{1}$ 次,然后将 $s_{2}$ 重复写 $a_{2}$ 次,依此类推,最终得到的字符串就是 $s$。
压缩版本的长度为 $|c_{1}|+|s_{1}|+|c_{2}|+|s_{2}|+\cdots+|c_{k}|+|s_{k}|$。在所有可能的压缩版本中,伊万想选择长度最短的那个。请你帮助伊万求出压缩版本可能的最小长度。
输入格式
输入的唯一一行包含一个只由小写拉丁字母组成的字符串 $s$($1 \leq |s| \leq 8000$)。
输出格式
输出一个整数,表示字符串 $s$ 的最短压缩版本的长度。
说明/提示
在第一个样例中,伊万会选择这样的压缩版本:$c_{1}$ 是 10,$s_{1}$ 是 a。
在第二个样例中,伊万会选择这样的压缩版本:$c_{1}$ 是 1,$s_{1}$ 是 abcab。
在第三个样例中,伊万会选择这样的压缩版本:$c_{1}$ 是 2,$s_{1}$ 是 c,$c_{2}$ 是 1,$s_{2}$ 是 z,$c_{3}$ 是 4,$s_{3}$ 是 ab。
由 ChatGPT 5 翻译