方块游戏
题目描述:
农夫约翰试图通过给奶牛一套通常用于学龄前儿童的 N 个拼写板来教他的奶牛阅读。
每个拼写板的每一侧都有一个单词和一个图画。
例如,一侧可能有单词 cat 和一只小猫,另一侧可能有单词 dog 和一只小狗。
因此,当所有拼写板放置到地面上时,会显示一组 N 个单词。
通过翻转其中一部分板子,就可以得到另一组 N 个单词。
为了帮助奶牛练习单词拼写,约翰想要制作一些木块,在每个木块上都印上一个字母,使得奶牛可以使用这些木块拼出看到的单词。
为了使得无论哪一组 N 个单词朝上显示,奶牛都能将其全部拼出,就需要印有各种字母的木块都足够的多。
例如,如果 N=3 且单词 box, cat, car 朝上显示,则奶牛至少需要一个 b 块,一个 o 块,一个 x 块,两个 c 块,两个 a 块,一个 t 块和一个 r 块。
请帮助约翰确定,印有每种字母的木块至少需要提供多少块,才能使得不管每个板子的哪一侧朝上显示,奶牛都可以拼出所有 N 个可见的单词。
输入格式:
第一行包含整数 N。
接下来 N 行,每行包含两个单词,这两个单词分别位于一块木板的两侧,每个单词都是长度不超过 10 的小写字母构成的字符串。
输出格式:
共 26 行。
第一行输出印有字母 a 的木块所需的块数。
第二行输出印有字母 b 的木块所需的块数,以此类推。
数据范围:
1 ≤ N ≤ 100
样例输入:
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 块拼写板,共有 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
时间限制: 1000ms空间限制: 256MB
来源: USACO 2016 December Contest Bronze