题解 | #矩阵乘法计算量估算# 栈
矩阵乘法计算量估算
https://www.nowcoder.com/practice/15e41630514445719a942e004edc0a5b
''' from numpy.core.defchararray import isalpha A是一个50×10的矩阵,B是10×20的矩阵,C是20×5的矩阵 计算A*B*C有两种顺序: ((AB)C):15000次乘法 10*20*50=10000 列1*列2*行1 20*5*50=5000 总共15000次 (A(BC)):3500次乘法 20*5*10=1000 10*5*50=2500 总共3500次 ''' n=int(input()) d=[] for i in range(n): d.append(list(map(int,input().split()))) #print(d) rule=input() #计算顺序 size=[] cnt=0 no=0 for i in rule: if i.isalpha(): size.append(d[no]) no += 1 #print(size) elif i==')': a=size.pop() # 遇到)删掉倒数1和倒数2 b=size.pop() cnt += b[0]*b[1]*a[1] size.append([b[0],a[1]]) # 将倒2和倒1乘积的size 补充进去 #print(cnt,size) print(cnt)
栈:后入先出