首页 > 其他 > 详细

UVa442 Matrix Chain Multiplication(栈)

时间:2019-02-14 17:48:54      阅读:157      评论:0      收藏:0      [点我收藏+]
#include<cstdio>
#include<cstring> #include<stack> #include<algorithm> #include<iostream> using namespace std; struct matrix { int a,b; matrix(int a=0,int b=0):a(a),b(b) {}//结构体构造函数赋值 }m[26]; stack<matrix>s; int main() { int n; char A; scanf("%d",&n); for(int i=1;i<=n;i++) { cin >> A; int k=A-A; cin >> m[k].a >> m[k].b; } string expr; while(cin >> expr) { int len = expr.length(); int flag = 0; 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) { flag = 1; break; } ans += m1.a*m1.b*m2.b; s.push(matrix(m1.a,m2.b)); } } if(flag) printf("error\n"); else printf("%d\n",ans); } return 0; }

 

UVa442 Matrix Chain Multiplication(栈)

原文:https://www.cnblogs.com/LLLAIH/p/10375619.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!