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

矩阵乘法计算量估算

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)


栈:后入先出

全部评论

相关推荐

10-09 00:50
已编辑
长江大学 算法工程师
不期而遇的夏天:1.同学你面试评价不错,概率很大,请耐心等待;2.你的排名比较靠前,不要担心,耐心等待;3.问题不大,正在审批,不要着急签其他公司,等等我们!4.预计9月中下旬,安心过节;5.下周会有结果,请耐心等待下;6.可能国庆节前后,一有结果我马上通知你;7.预计10月中旬,再坚持一下;8.正在走流程,就这两天了;9.同学,结果我也不知道,你如果查到了也告诉我一声;10.同学你出线不明朗,建议签其他公司保底!11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
一名愚蠢的人类:多少games小鬼留下了羡慕的泪水
投递荣耀等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务