题目描述
著名科学家卢斯为了检查学生对进位制的理解,他给出了如下的一张加法表,表中的字母代表数字。 例如:
+ L K V EL L K V EK K V E KLV V E KL KKE E KL KK KV
其含义为:
L+L=L,L+K=K,L+V=V,L+E=E
K+L=K,K+K=V,K+V=E,K+E=KL
…… E+E=KV
根据这些规则可推导出:L=0,K=1,V=2,E=3
同时可以确定该表表示的是4进制加法
//感谢lxylxy123456同学为本题新加一组数据
输入输出格式
输入格式: n(n≤9)表示行数。
以下n行,每行包括n个字符串,每个字串间用空格隔开。(字串仅有一个为‘+’号,其它都由大写字母组成)
输出格式: ① 各个字母表示什么数,格式如:L=0,K=1,……按给出的字母顺序。
② 加法运算是几进制的。
③ 若不可能组成加法表,则应输出“ERROR!”
输入输出样例
输入样例#1: 5+ L K V EL L K V EK K V E KLV V E KL KKE E KL KK KV
题解
这道题作为洛谷第一页的题,好久放在这里都尝试过【代码能力极差= =】 好吧仔细想想还是很简单的【都没怎么剪枝就 0ms】 作为一个加法表,理应包含该进制下所有的数字【不然相加的结果会冒出别的字母出来】 这样我们可以知道这是在n进制下的加法【这里n指字母个数】 既然一定有一个0,我们就可以直接找出那一行都是原数的就是0 其它的就dfs尝试给它赋予一个数字,通过该行的加法表用已知的检查是否合法 #include #include #include #include