#P3188. Cellphones

    ID: 2189 传统题 1000ms 256MiB 尝试: 9 已通过: 1 难度: 10 上传者: 标签>搜索DFS数据结构Hashing组合数学USACO 2006 February Gold

Cellphones

题目描述:

奶牛们开始使用手机互相交流,但发现标准手机的按键布局不太适合它们的蹄子。于是它们正在设计一款特殊的手机,配备更少但更大的按键。

奶牛们喜欢标准手机上的 “预测文本” 功能:每个按键关联几个字母,用户通过按下对应的按键序列输入单词。由于每个按键对应多个字母,某些单词可能会产生歧义,但大多数情况下可以通过字典来推断用户想要输入的单词。

由于奶牛们设计的是定制手机,它们还打算将英文字母表替换为 “奶牛字母表”。巧合的是,奶牛字母表恰好是英文字母表的前 LL 个字母1L26(1 ≤ L ≤ 26),顺序保持不变。现在需要解决的问题是:如何将这 LL 个字母分配到 BB 个按键上1BL(1 ≤ B ≤ L),使得在输入时,字典中无歧义的单词数量最多。与标准手机一样,每个按键上的字母必须是连续的一段字母序列(一个或多个连续的字母)。

输入:

第一行:两个用空格分隔的整数:BBLL

第二行:DD,字典中的单词数量1D1000(1 ≤ D ≤ 1000)

第三行到第 D+2D+2 行:每行包含字典中的一个单词,均为大写字母,长度为 111010 个字符。单词按字母顺序排列且无重复。

输出:

第一行:奶牛字典中具有唯一按键序列的单词数量。

第二行到第 B+1B+1 行:第 nn 行包含第 nn 个按钮上的字母,以大写字母按字母顺序排列。这些行必须按字母顺序列出,且每个奶牛字母必须恰好出现一次。如果存在多个最优解,选择将最多字母放在按钮 11 的方案;若仍有并列情况,按按钮 22 放置字母最多的方案,依此类推。

输入数据1

3 13
11
ALL
BALL
BELL
CALK
CALL
CELL
DILL
FILL
FILM
ILL
MILK

输出数据1

7
AB
CDEFGHIJK
LM

提示:

样例解释: 按钮 11 包含字母 ABAB,按钮 22 包含字母 CKC-K,按钮 3 包含字母 LMLM。单词 CELLDILLFILLFILMCELL、DILL、FILL 和 FILM 的输入按键序列均为 22332233,而其余 77 个单词的按键序列均唯一无歧义。

来源:

美国计算机科学奥林匹克竞赛(USACO)2006 年 2 月黄金级