题目名称 297. [NOI 2000]算符破译
输入输出 equation.in/out
难度等级 ★★★☆
时间限制 6000 ms (6 s)
内存限制 128 MiB
测试数据 10
题目来源 GravatarBYVoid 于2009-03-11加入
开放分组 全部用户
提交状态
分类标签
NOI 搜索法 表达式树
分享题解
通过:15, 提交:76, 通过率:19.74%
Gravatarzzj 100 0.256 s 0.42 MiB C++
Gravatarchongjg 100 1.905 s 0.38 MiB C++
Gravatarluoyuchu 100 2.217 s 0.31 MiB C++
GravatarOwaski 100 2.851 s 19.49 MiB C++
GravatarBYVoid 100 3.324 s 0.32 MiB C++
Gravatarzzj 100 4.124 s 0.42 MiB C++
GravatarTgopKnight 100 4.913 s 0.42 MiB C++
Gravatarppfish 100 5.004 s 0.34 MiB C++
Gravatarlyxin65 100 5.259 s 0.59 MiB C++
Gravatarppfish 100 5.975 s 0.34 MiB C++
关于 算符破译 的近10条评论(全部评论)
Gravatarppfish
2016-05-20 16:26 2楼
造福人类
Gravatarlyxin65
2016-05-17 16:51 1楼

297. [NOI 2000]算符破译

★★★☆   输入文件:equation.in   输出文件:equation.out   简单对比
时间限制:6 s   内存限制:128 MiB

考古学发现,几千年前古梅文明时期的数学非常的发达,他们懂得多位数的加法和乘法,其表达式和运算规则等都与现在通常所用的方式完全相同(如整数是 十进制,左边是高位,最高位不能为零;表达式为中缀运算,先乘后加等),唯一的区别是其符号的写法与现在不同。有充分的证据表明,古梅文明的数学文字一共 有13个符号,与 0,1,2,3,4,5,6,7,8,9,+,*,= 这13个数字和符号(称为现代算符)一一对应。为了便于标记,我们用13个小写英文字母a,b,…m代替这些符号(称为古梅算符)。但是,还没有人知道这 些古梅算符和现代算符之间的具体对应关系。 在一个石壁上,考古学家发现了一组用古梅算符表示的等式,根据推断,每行有且仅有一个等号,等号左右两边为运算表达式(只含有数字和符号),并且等号两边 的计算结果相等。

假设这组等式是成立的,请编程序破译古梅算符和现代算符之间的对应关系。

[输入文件]

  • 输入文件的第一行为等式的个数N(1<=N<=1000),以下N行每行为一个等式。
  • 每个等式的长度为5个字符到11个字符。

[输出文件]

  • 如果不存在对应关系能够满足这组等式,输出“noway”和一个换行/回车符。
  • 如果有对应关系能够满足这组等式,输出所有能够确定的古梅算符和现代算符的对应关系。每一行有两个字符,其中第一个字符是古梅算符,第二个字符是对应的现代算符。输出按照字典顺序排序。

[输入输出文件样例]

Input

2
abcdec
cdefe

Output

a6
b*
d=
f+

[样例说明]

在上例中,可能对应的现代表达式为{6*2=12,2=1+1},{6*4=24,4=2+2},{6*8=48,8=4+4}。可见,能 够确定的对应关系只有a对应6,b对应*,d对应=,f对应+,应该输出;而{c,e}虽然能够找到对应的现代算符使得等式成立,但没有唯一的对应关系, 不能输出。其他古梅算符{g,h…m}完全不能确定,也不能输出。