题解 | #矩阵乘法计算量估算#
矩阵乘法计算量估算
https://www.nowcoder.com/practice/15e41630514445719a942e004edc0a5b
#include <iostream>
#include <string>
#include <stack>
using namespace std;
struct Matrix {
unsigned n;
unsigned m;
};
int main() {
unsigned a;
cin >> a;
Matrix *matrix = new Matrix[a];
for (unsigned i = 0; i != a; ++i) {
cin >> matrix[i].m >> matrix[i].n;
}
string cmd;
cin >> cmd;
int sum = 0;
stack<Matrix> st_m;
stack<char> st_c;
unsigned flag = 0;
for (char c : cmd) {
if (c == '(') {
st_c.push(c);
continue;
} else if (c == ')') {
Matrix m2 = st_m.top();
st_m.pop();
Matrix &m1 = st_m.top();
sum += m1.m * m1.n * m2.n;
m1.n = m2.n;
continue;
}
st_m.push(matrix[flag]);
flag++;
}
delete[] matrix;
cout << sum << endl;
return 0;
}
// 64 位输出请用 printf("%lld")
查看8道真题和解析