题解 | #矩阵乘法计算量估算# 栈

矩阵乘法计算量估算

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)


栈:后入先出

全部评论

相关推荐

点赞 评论 收藏
分享
offer多多的六边形战士很无语:看了你的博客,感觉挺不错的,可以把你的访问量和粉丝数在简历里提一下,闪光点(仅个人意见)
点赞 评论 收藏
分享
手撕没做出来是不是一定挂
Chrispp3:不会,写出来也不一定过
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务