矩阵链乘( Matrix Chain Multiplication, UVa 442)

Kirima ·
更新时间:2024-11-10
· 930 次阅读

#include"pch.h" #include #include #include #include using namespace std; struct Matrix { int a, b; Matrix(int a = 0,int b=0):a(a),b(b){} }m[26]; stack s; int main() { int n; cin >> n; for (int i = 0; i > name; int k = name[0] - 'A'; cin >> m[k].a >> m[k].b; } string expr; while (cin >> expr) { int len = expr.length(); bool error = false; int ans = 0; for (int i = 0; i < len; i++) { if (isalpha(expr[i])) s.push(m[expr[i] - 'A']); else if (expr[i] == ')') { Matrix m2 = s.top(); s.pop(); Matrix m1 = s.top(); s.pop(); if (m1.b != m2.a) { error = true; break; } ans += m1.a*m1.b*m2.b; s.push(Matrix(m1.a, m2.b)); } } if (error) printf("error\n"); else printf("%d\n", ans); } return 0; }
作者:千年暗室 一灯即明



matrix 矩阵

需要 登录 后方可回复, 如果你还没有账号请 注册新账号