P15206 [SWERC 2018] Dishonest Driver
题目描述
当你抵达戴高乐机场时,你天真地接受了一位无证司机提供的“有竞争力价格”的搭车前往巴黎。结果是一场灾难:不仅价格极高,而且司机为了让这个价格显得合理,让行程变得比必要长得多。
你注意到了这个骗局,因为你多次经过同一个地方:事实上,你的记忆力非常好,能够清楚地记住你走过的路径,包括那位骗子迫使你绕的每一个圈子。
现在,你在警察局报案投诉这位司机,一位警官要求你讲述你的经历。她甚至要求你提供你所走路径的所有细节。因为你不想再花几个小时做这件事,你决定给出一个压缩版本。
假设你记得你经过了地点 A, B, C, D, A, B, C, D。在这种情况下,你宁愿告诉警官“我走了两遍路径 ABCD”,而不是“我走了路径 ABCDABCD”。由于你的路径重复了相同的地点序列,这将显著缩短你的陈述,而不会遗漏任何细节。
更精确地说,你需要编写一个程序,输入为你经过的地点列表,并返回该路径最短压缩形式的大小。这样的压缩路径可以是以下之一:
- 一个你经过的单个地点,称为“原子路径”;
- 两个压缩路径的连接;
- 一个压缩路径的重复,即 $ (C)^n $,表示你连续走了 $ n $ 次由 $ C $ 描述的路径。
压缩路径的大小定义为其中包含的原子路径的数量。
输入格式
输入包含两行:
- 第一行包含一个整数 $ N $,表示路径的长度。
- 第二行包含路径,描述为一个长度为 $ N $ 的字符串。每个地点由一个字母数字字符描述:可以是数字(从 '0' 到 '9')、小写字母(从 'a' 到 'z')或大写字母(从 'A' 到 'Z')。
输出格式
输出应包含一行,内容为一个整数,表示最短压缩路径的大小。
说明/提示
#### 样例解释 1
该路径的最短压缩形式是 $ (((a)^3b)^2(c)^2d)^2 $。其中包含的原子路径是 $ a $、$ b $、$ c $ 和 $ d $。因此,其大小为 4。
#### 样例解释 2
该路径的最短压缩形式是 $ (a)^2ba $。其中包含的原子路径是 $ a $、$ b $ 和 $ a $。因此,其大小为 3。
### 数据范围
$ 0 < N \leq 700 $
翻译由 DeepSeek 完成