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

矩阵乘法计算量估算

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)


栈:后入先出

全部评论

相关推荐

机械打工仔:我来告诉你原因,是因为sobb有在线简历,有些HR为了快会直接先看在线简历,初步感觉不合适就不会找你要详细的了
投了多少份简历才上岸
点赞 评论 收藏
分享
06-16 15:04
黑龙江大学 Java
零OFFER战士:另一个版本查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务