QOJ.ac

QOJ

حد الوقت: 2 s حد الذاكرة: 64 MB مجموع النقاط: 160

#13713. 女巫

الإحصائيات

年轻的勇士、冒险家 Matej 在经历了一段漫长而艰苦的旅程后,终于到达了他的终点——邪恶女巫 Marija 的家。为了完成他的冒险,他必须解决女巫给他的最后一个谜题。

为了开始解决她的谜题,我们的英雄需要熟悉一种被称为前缀树(trie)的数据结构。

前缀树是一种以如下方式表示某个单词集合中所有前缀(单词的前缀是指从单词开头到某个位置的连续子串)的数据结构:

  • 树的每条边都用一个字母表中的字母表示。
  • 树的根节点表示一个空前缀。
  • 树中的所有其他节点都表示一个非空前缀,每个节点表示的前缀是通过将从树根到该节点(按顺序)的路径上的边上的字母拼接而得到的。
  • 从单个节点出发,永远不会有两条标有相同字母的边(通过这种方式,我们可以使表示所有前缀所需的节点数最少)。

单词 "A", "to", "tea", "ted", "ten", "i", "in", "inn" 的前缀树。

只有在 Matej 了解了什么是前缀树之后,真正的谜题才开始!

正如你可能已经猜到的,女巫有 $N$ 个由英文小写字母组成的单词。如果女巫只是想知道该单词集合的前缀树的节点数,那么这个谜题就太简单了,但她对此并不感兴趣。她想知道,在任意排列每个单词的字母之后,前缀树所能拥有的最少节点数

帮助 Matej 找到谜题的答案!

输入格式

输入的第一行包含一个整数 $N$($1 \le N \le 16$)。

接下来的 $N$ 行,每行包含一个由英文小写字母组成的单词。

所有单词的总长度将小于 $1\,000\,000$。

输出格式

输出的第一行也是唯一的一行,必须包含一个数字,即女巫 Marija 的谜题的答案。

样例

输入样例 1

3
a
ab
abc

输出样例 1

4

输入样例 2

3
a
ab
c

输出样例 2

4

输入样例 3

4
baab
abab
aabb
bbaa

输出样例 3

5

说明

样例 3 解释:

所有单词都可以重新排列为单词 "aabb",因此前缀树将有 5 个节点(4 个节点表示前缀 + 1 个表示空前缀的树根)。

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.