#P3188. Cellphones
Cellphones
题目描述:
奶牛们开始使用手机互相交流,但发现标准手机的按键布局不太适合它们的蹄子。于是它们正在设计一款特殊的手机,配备更少但更大的按键。
奶牛们喜欢标准手机上的 “预测文本” 功能:每个按键关联几个字母,用户通过按下对应的按键序列输入单词。由于每个按键对应多个字母,某些单词可能会产生歧义,但大多数情况下可以通过字典来推断用户想要输入的单词。
由于奶牛们设计的是定制手机,它们还打算将英文字母表替换为 “奶牛字母表”。巧合的是,奶牛字母表恰好是英文字母表的前 个字母,顺序保持不变。现在需要解决的问题是:如何将这 个字母分配到 个按键上,使得在输入时,字典中无歧义的单词数量最多。与标准手机一样,每个按键上的字母必须是连续的一段字母序列(一个或多个连续的字母)。
输入:
第一行:两个用空格分隔的整数: 和
第二行:,字典中的单词数量
第三行到第 行:每行包含字典中的一个单词,均为大写字母,长度为 到 个字符。单词按字母顺序排列且无重复。
输出:
第一行:奶牛字典中具有唯一按键序列的单词数量。
第二行到第 行:第 行包含第 个按钮上的字母,以大写字母按字母顺序排列。这些行必须按字母顺序列出,且每个奶牛字母必须恰好出现一次。如果存在多个最优解,选择将最多字母放在按钮 的方案;若仍有并列情况,按按钮 放置字母最多的方案,依此类推。
输入数据1
3 13
11
ALL
BALL
BELL
CALK
CALL
CELL
DILL
FILL
FILM
ILL
MILK
输出数据1
7
AB
CDEFGHIJK
LM
提示:
样例解释: 按钮 包含字母 ,按钮 包含字母 ,按钮 3 包含字母 。单词 的输入按键序列均为 ,而其余 个单词的按键序列均唯一无歧义。
来源:
美国计算机科学奥林匹克竞赛(USACO)2006 年 2 月黄金级