题解 | #矩阵乘法计算量估算#
矩阵乘法计算量估算
https://www.nowcoder.com/practice/15e41630514445719a942e004edc0a5b
#include <stdio.h>
#include <string.h>
int main() {
int n;
scanf("%d",&n);
int fan[15][2];
for (int i = 0; i<n; i++) {
scanf("%d %d",&fan[i][0],&fan[i][1]);
}
char x[100];
scanf("%s",x);
int len = strlen(x);
int a[100] = {0};
int b[100] = {0};
int top[100] = {0};
int sum = 0;
int m = 0;
int g = 0;
for (int i = 0; i<len; i++) {
if (x[i] == '(') {
top[m++]=i;
}
if (x[i] >= 'A' && x[i] <= 'Z') {
int temp = x[i] - 'A';
a[g] = fan[temp][0];
b[g] = fan[temp][1];
g++;
}
if (x[i] == ')') {
//for (int j =i-2; j>=top[m-1]+1; j--) { 无法排除空位部分计算会失败
sum += a[g-1]*b[g-1]*a[g-2];
b[g-2] = b[g-1];
g--;
// g = b[j+1];
//b[j+1] = 0;
// printf("%d\n",sum);
// printf("%d\n",i);
// printf("%d\n",top[m-1]+1);
//b[top[m-1]+1] = 0;
// m--;
}
}
printf("%d",sum);
return 0;
}

