题解 | #矩阵乘法计算量估算#
矩阵乘法计算量估算
https://www.nowcoder.com/practice/15e41630514445719a942e004edc0a5b
num = int(input()) dic = {} start = ord("A") for i in range(num): dic[chr(start + i)] = list(map(int, input().split())) f_queue = [] algo = input()[1:-1] # print(algo) time = 0 for v in algo: if v == "(": pass elif v == ")": # f_queue last two # f_queue[len(f_queue)-2][0] time += ( f_queue[len(f_queue) - 2][0] * f_queue[len(f_queue) - 1][1] * f_queue[len(f_queue) - 1][0] ) new_l = [f_queue[len(f_queue) - 2][0], f_queue[len(f_queue) - 1][1]] f_queue.pop() f_queue.pop() f_queue.append(new_l) # elif bracket: # f_queue.append(dic.get(v)) else: f_queue.append(dic.get(v)) if len(f_queue) > 1: time += ( f_queue[len(f_queue) - 2][0] * f_queue[len(f_queue) - 1][1] * f_queue[len(f_queue) - 1][0] ) new_l = [f_queue[len(f_queue) - 2][0], f_queue[len(f_queue) - 1][1]] f_queue.pop() f_queue.pop() f_queue.append(new_l) # print(f_queue) print(time)