【题目描述】
著名科学家卢斯为了检查学生对进位制的理解,他给出了如下的一张加法表,表中的字母代表数字。例如:根据这些规则可推导出:L=0,K=1,V=2,E=3,同时可以确定该表表示的是 4 进制加法。例如:
【输入】
n(n≤9)表示行数。以下 n 行,每行包括 n 个字符串,每个字串间用空格隔开。(字串仅有一个为‘+’号,其它都由大写字母组成)
【输出】
① 各个字母表示什么数,格式如:L=0,K=1,……
② 加法运算是几进制的。
③ 若不可能组成加法表,则应输出“ERROR!”
【样例输入】
3
+ M L
M ML M
L M L
【样例输出】
M=1 L=0
2
================题解==============
当进制==n-1时才能组成加法表。
那么每个字母所代表的数字肯定在[0,n-2]的区间内,当第一行与第一列的字母以0,1,2……n-2的顺序排列时,观察表格可知,每个字母所代表的数==表中出现的单个此字母的数量-1。但数据中第一行(列)的字母所代表的数可能不是有序的,此时可以看出,当第一行(列)中的一个字母移动时,会带动它的左(下)面一整行(列)移动,即不管顺序如何,表格中的字符数量与类型不会变化,变化的只有顺序。
所以只要统计表格中每个单字母出现的顺序就可以了。
当时刚一看到没什么思路,想到了递归得到0到n-2的全排列再尝试每种情况是否符合表格,最后没调出来。。。。。。