QOJ.ac

QOJ

時間限制: 60.0 s 記憶體限制: 256 MB 總分: 100

#17461. 城市合并

统计

近年来,信息与通信技术的进步使得以更低的成本、更快速地向更广泛的地区提供市政服务成为可能。受此启发,也可能是为了节省本就不充裕的资金,许多城市的市长开始讨论合并他们所在的城市。

当然,要将计划中的合并付诸实践,还面临着许多障碍。每个城市都有自己独特的文化,市民们为此感到自豪。其中最大的摩擦来源之一就是新城市的命名。所有市民都会坚持要求新城市的名字中必须至少包含他们原本城市的名字作为其一部分。然而,简单地将所有原名拼接在一起,会使名字过长,不便于日常使用。

一组市长请求你编写一个程序,寻找一个尽可能短的新城市名称,使其包含所有待合并城市的原始名称。如果两个或多个城市的名字有重合的部分,它们可以相互重叠。例如,如果要合并 “FUKUOKA”、“OKAYAMA” 和 “YAMAGUCHI” 这三个城市,“FUKUOKAYAMAGUCHI” 就是一个包含了所有这三个原始城市名称的名字。虽然这个名字按顺序包含了城市名称 “FUKUYAMA” 的所有字符,但它们并没有作为连续的子串出现,因此不认为 “FUKUYAMA” 被包含在该名字中。

输入格式

输入由多个数据集组成。每个数据集以包含一个正整数 $n$ ($n \le 14$) 的行开始,表示要合并的城市数量。接下来的 $n$ 行包含这些城市的名字,每个名字由大写英文字母组成,每行一个。你可以认为每个原始城市名字的长度不超过 20 个字符。当然,没有两个城市具有相同的名字。

输入结束由仅包含一个零的行表示。

输出格式

对于每个数据集,在一行中输出新城市可能的最短名称的长度。输出中不应包含任何其他字符。

样例

输入样例 1

3
FUKUOKA
OKAYAMA
YAMAGUCHI
3
FUKUOKA
FUKUYAMA
OKAYAMA
2
ABCDE
EDCBA
4
GA
DEFG
CDDE
ABCD
2
ABCDE
C
14
AAAAA
BBBBB
CCCCC
DDDDD
EEEEE
FFFFF
GGGGG
HHHHH
IIIII
JJJJJ
KKKKK
LLLLL
MMMMM
NNNNN
0

输出样例 1

16
19
9
9
5
70

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.