QOJ.ac

QOJ

Limite de temps : 6 s Limite de mémoire : 2048 MB Points totaux : 100

#2807. 不诚实的司机

Statistiques

当你到达戴高乐机场时,你天真地接受了一位未经授权的司机的搭乘,他向你提供了“优惠价格”。结果是一场灾难:不仅价格极其昂贵,而且司机为了证明这个价格的合理性,让行程比必要的长得多。

你之所以注意到这场骗局,是因为你多次经过同一个地方:事实上,你的记忆力非常好,以至于你可以清楚地记得你所走的路径,包括骗子强迫你走的每一个环路。

现在,你在警察局填写针对该司机的投诉,一名警官要求你讲述你的经历。她甚至要求你提供所走路径的所有细节。因为你不想再浪费几个小时来讲述这些,你决定提供一个压缩版本。

假设你记得你经过了地点 A, B, C, D, A, B, C, D。在这种情况下,你更愿意告诉警官“我两次经过了路径 ABCD”,而不是“我经过了路径 ABCDABCD”。鉴于你的路径重复了相同的地点序列,这将大大缩短你的陈述,而不会遗漏任何细节。

更准确地说,你需要编写一个程序,输入你经过的地点列表,并返回该路径的最短压缩形式的大小。这样的压缩路径可以是: 一个你经过的单一地点,称为“原子路径”; 两个压缩路径的拼接; * 一个压缩路径的重复,即 $(C)^n$,意味着你连续 $n$ 次经过了路径 $C$ 所描述的路径。

压缩路径的大小定义为它所包含的原子路径的数量。

输入格式

输入包含两行: 第一行包含一个整数 $N$,表示路径的长度。 第二行包含路径,描述为一个长度为 $N$ 的字符串。每个位置由一个字母数字字符描述:数字(从 ‘0’ 到 ‘9’)、小写字母(从 ‘a’ 到 ‘z’)或大写字母(从 ‘A’ 到 ‘Z’)。

数据范围

$0 < N \leqslant 700$

输出格式

输出应包含一行,内容为一个整数,即最短压缩路径的大小。

样例

输入格式 1

22
aaabaaabccdaaabaaabccd

输出格式 1

4

说明

最短压缩路径形式为 $(((a)^3b)^2(c)^2d)^2$。它包含的原子路径为 $a, b, c$ 和 $d$。因此,它的大小为 4。

输入格式 2

4
aaba

输出格式 2

3

说明

最短压缩路径形式为 $(a)^2ba$。它包含的原子路径为 $a, b$ 和 $a$。因此,它的大小为 3。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.