#2908. 拼写游戏
拼写游戏
题目描述
Farmer John 给他的奶牛一共 N ( 1 <= N <= 100 )个拼写板来教她们阅读,这些拼写板通常是学龄前儿童使用的。每块拼写板的两面都有一个单词和一个图像。例如,一面可能有单词 cat
和一张猫的图片,另一面可能有单词 dog
和一张狗的图片。当拼写板放在地上时,就会显示 N 个单词。通过翻转一些拼写版,就会显示出另一组不同的 N 个单词。
为了帮助奶牛拼写,农夫约翰想制做一些木块,每块木块上都有一个英文字母。对于每个字母,他想要制作足够多木块,这样无论拼写板的哪一组的 N 个单词朝上出现,奶牛都能用这些木块拼出所有这些单词。例如,如果 N = 3 ,单词 **box
、 cat
和 car
朝上,奶牛至少需要一个 b
木块、一个 o
木块、一个 x
木块、两个 c
木块、两个 a
木块、一个 t
木块和一个 r
木块。
请帮助 Farmer John 确定每个字母所需要的最少木块数,这样不管拼写板朝上出现的是哪一组单词,奶牛都能用这些木块拼出这 N 个单词。
输入格式
第一行包含整数 N 。
接下来的 N 行,每行包含两个单词,由一个空格隔开,表示拼写板正反两面的两个单词。每个单词最多由 10 个小写字母组成。
输出格式
输出 26 行。第一行给出字母 a
所需要的最少木块数,下一行给出字母 b
所需要的最少木块数,以此类推。
3
fox box
dog cat
car bus
2
2
2
1
0
1
1
0
0
0
0
0
0
0
2
0
0
1
1
1
1
0
0
1
0
0
提示
在这个例子中,有 N = 3 个拼写板,给出了可能的 2^3 = 8 组单词:
fox dog car
fox dog bus
fox cat car
fox cat bus
box dog car
box dog bus
box cat car
box cat bus
对于每个字母,我们需要足够多的木块,这样我们就可以拼出所有三个单词,而不管拼写板朝上出现的是八组情况中的哪一组单词。