3053 - Vještica女巫
时间限制 : 2 秒
内存限制 : 64 MB
年轻的英雄,冒险家Matej,经过漫长而艰苦的旅程,到达了他的终点目的地——邪恶女巫Marija的家。为了完成他的冒险,他必须解开女巫给他的最后一个谜题。
在此之前,我们必须熟悉一种称作前缀树(trie
)的数据结构。前缀树以前缀的方式,储存单词:
- 前缀树的每一条边都用英文字母表中的字母表示。
- 前缀树的根节点表示空前缀。
- 前缀树的每个其他节点都表示一个非空前缀。依次连接根节点至该节点路径上所标有的字母,即可得到该前缀。
- 不存在从一个节点出发的、标有相同字母的两条边。
例如,这棵前缀树储存了 A,to,tea,ted,ten,i,in,inn
:
现在,Matej 获得了 n 个单词,并可以将其中的一些单词重组。例如 abc
可以重组为 acb,bac,bca,cab,cba
。女巫的谜题是将一些单词重组后,储存这些单词的前缀树节点数的最小值。
输入
第一行一个整数 n。
接下来 n 行,每行一个字符串,表示 Matej 获得的单词。
输出
一行,一个整数,表示将一些单词重组后,储存这些单词的前缀树节点数的最小值。
样例
输入
3 a ab abc
输出
4
输入
3 a ab c
输出
4
输入
4 baab abab aabb bbaa
输出
5
提示
对于 100\% 的数据,保证 1\le n\le 16。
所有单词的长度和不超过 10^6,且只包含小写字母。
来源
其它比赛