题解 | #矩阵乘法计算量估算#
矩阵乘法计算量估算
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; }