提交时间:2026-04-10 15:16:55

运行 ID: 87032

import sys def parse_expression(s): s = s.replace(' ', '') # 去除空格 pos = 0 def parse_primary(): nonlocal pos if pos < len(s) and s[pos] == '(': pos += 1 # skip '(' expr = parse_additive() if pos < len(s) and s[pos] == ')': pos += 1 return expr elif pos < len(s) and s[pos] == 'a': pos += 1 return [0, 1] + [0] * 9 # a^1 else: # parse number start = pos while pos < len(s) and s[pos].isdigit(): pos += 1 num = int(s[start:pos]) if s[start:pos] else 0 poly = [0] * 11 poly[0] = num return poly def parse_power(): nonlocal pos base = parse_primary() while pos < len(s) and s[pos] == '^': pos += 1 # exponent is a small integer 1-10 start = pos while pos < len(s) and s[pos].isdigit(): pos += 1 exp = int(s[start:pos]) # compute base^exp result = [0] * 11 result[0] = 1 # start with 1 for _ in range(exp): result = multiply_poly(result, base) base = result return base def parse_multiplicative(): nonlocal pos left = parse_power() while pos < len(s) and s[pos] == '*': pos += 1 right = parse_power() left = multiply_poly(left, right) return left def parse_additive(): nonlocal pos left = parse_multiplicative() while pos < len(s) and (s[pos] == '+' or s[pos] == '-'): op = s[pos] pos += 1 right = parse_multiplicative() if op == '+': left = add_poly(left, right) else: left = subtract_poly(left, right) return left return parse_additive() def add_poly(p1, p2): return [p1[i] + p2[i] for i in range(11)] def subtract_poly(p1, p2): return [p1[i] - p2[i] for i in range(11)] def multiply_poly(p1, p2): result = [0] * 11 for i in range(11): if p1[i] == 0: continue for j in range(11): if p2[j] == 0: continue if i + j <= 10: result[i + j] += p1[i] * p2[j] return result def poly_equal(p1, p2): return all(p1[i] == p2[i] for i in range(11)) # 主程序 expr1 = input().strip() n = int(input().strip()) # 解析题干表达式 target_poly = parse_expression(expr1) result = [] for i in range(n): option = input().strip() option_poly = parse_expression(option) if poly_equal(target_poly, option_poly): result.append(chr(ord('A') + i)) print(''.join(result))