1327 问题 G: [NOIP2005]等价表达式

时间限制: 1s 内存限制: 128MB 提交: 67 解决: 17
题目描述

明明进了中学之后,学到了代数表达式。有一天,他碰到一个很麻烦的选择题。这个题目的题干中首先给出了一个代数表达式,然后列出了若干选项,每个选项也是一个代数表达式,题目的要求是判断选项中哪些代数表达式是和题干中的表达式等价的。这个题目手算很麻烦,因为明明对计算机编程很感兴趣,所以他想是不是可以用计算机来解决这个问题。假设你是明明,能完成这个任务吗?

这个选择题中的每个表达式都满足下面的性质:

1.表达式只可能包含一个变量‘a’。 

2.表达式中出现的数都是正整数,而且都小于10000。 

3.表达式中可以包括四种运算‘+’(加),‘-’(减),‘*’(乘),‘^’(乘幂),以及小括号‘(’,‘)’。小括号的优先级最高,其次是‘^’,然后是‘*’,最后是‘+’和‘-’。‘+’和‘-’的优先级是相同的。相同优先级的运算从左到右进行。(注意:运算符‘+’,‘-’,‘*’,‘^’以及小括号‘(’,‘)’都是英文字符) 

4.幂指数只可能是1到10之间的正整数(包括1和10)。 

5.表达式内部,头部或者尾部都可能有一些多余的空格。 

下面是一些合理的表达式的例子:  ((a^1)  ^  2)^3,a*a+a-a,((a+a)),9999+(a-a)*a,1  +  (a  -1)^3,1^10^9……  对于30%的数据,表达式中只可能出现两种运算符‘+’和‘-’;  对于其它的数据,四种运算符‘+’,‘-’,‘*’,‘^’在表达式中都可能出现。  对于全部的数据,表达式中都可能出现小括号‘(’和‘)’。 

输入
  输入的第一行给出的是题干中的表达式。第二行是一个整数n(2  < =  n  < =  26),表示选项的个数。后面n行,每行包括一个选项中的表达式。这n个选项的标号分别是A,B,C,D……    输入中的表达式的长度都不超过50个字符,而且保证选项中总有表达式和题干中的表达式是等价的。 
输出
输出包括一行,这一行包括一系列选项的标号,表示哪些选项是和题干中的表达式等价的。选项的标号按照字母顺序排列,而且之间没有空格。 
样例输入
(a+1)^2
3
(a-1)^2+4*a
a+1+a
a^2+2*a*1+1^2+10-10+a-a
样例输出
AC
提示
零基础同学可以先学习视频课程,包含C/C++、Python、百练、蓝桥杯辅导、算法数据结构等课程,提供视频讲解以及配套习题,还有老师答疑,点击这里了解课程详情

比赛公告

题号:1321,1322,1323,1324,1325,1326,1327,1328,1329,1330

点击上方导航栏的训练,点击题库,寻找题号即可找到对应题目,比赛结束后,请通过训练->题库->寻找对应题目的方式做题

因为不确定因素太多,就不再安排大家轮流讲题了,大家做不出题可以在测试结束后去题库找对应的题目看题解,希望大家自觉练习,认真练习,考核测试会采取不同与现在测试的方式,两个月后综合测试成绩不达标者会退出实验室,希望大家认真对待