QOJ.ac

QOJ

时间限制: 1 s 内存限制: 2048 MB 总分: 100

#4227. Cram

统计

你想要使用反向引用(backreference)来压缩一段给定的文本。反向引用是一对数字 $[a, b]$,表示接下来的 $b$ 个字符与当前位置之前 $a$ 个字符开始的 $b$ 个字符相同。这两个字符串可以重叠,即 $a$ 可以小于 $b$。

每个反向引用编码的代价为 3 个字节,无论该反向引用表示多少个字符。字符串中的每个字符编码代价为 1 个字节。

例如,字符串

abcabcabcabc

共有 12 个字符。但最后 9 个字符可以表示为对前 9 个字符的反向引用,如下所示:

abc[3,9]

该编码字符串的总代价为 6:字符串 abc 占用 3 个字节,反向引用占用 3 个字节。

输出编码该文本段的最小代价。

输入格式

输入包含单行字符串 $s$,满足 $1 \le |s| \le 10^5$。该行文本由大写字母(‘A’–‘Z’)、小写字母(‘a’–‘z’)和空格组成。行首和行尾不会有空格,且不会出现连续的空格。

输出格式

输出一个整数,表示使用反向引用表示输入字符串的最小代价。

样例

样例输入 1

abcabcabcabc

样例输出 1

6

样例输入 2

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

样例输出 2

4

样例输入 3

A man a plan a canal Panama

样例输出 3

25

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.