题解 | #矩阵乘法计算量估算#
矩阵乘法计算量估算
https://www.nowcoder.com/practice/15e41630514445719a942e004edc0a5b
python3最高赞回答有问题,只要括号内存在三个以上矩阵相乘,那他这就有问题,因为他总是先计算最内层括号里倒数两个矩阵的乘法
while True: try: n = int(input()) x=97#用于之后替换小括号中的所有字母所代表矩阵 dic={} whole=0 for i in range(n): dic[chr(i+65)]=list(map(int, input().split()))#存储字母对应矩阵参数 f = input() while '(' in f: res=1#用于存储当前最内层括号内乘法运算次数 r=f.rfind('(')#找到最内层左括号 l=r while f[l+1]!=')':#计算最内层括号内矩阵乘法次数 res=dic[f[l+1]][0]*res l+=1 else: res=dic[f[l]][1]*res dic[chr(x)]=[dic[f[r+1]][0],dic[f[l]][1]] #将最内层括号运算的结果矩阵存入字典 f = f.replace(f[r:l + 2], chr(x)) #再用新的矩阵替代这个括号内所有矩阵 x+=1 whole+=res print(whole) except: break