UVA442 - Matrix Chain Multiplication
2015-02-27 18:38
405 查看
判断字符)计算
#include <iostream> #include <stack> #include <string> #include <cstdio> using namespace std; int main(){ ios::sync_with_stdio(false); //freopen("in.txt","r",stdin); int T; cin>>T; int a[26][2],b[26][2]; while(T--){ char c; int x,y; cin>>c>>x>>y; b[c-65][0]=x; b[c-65][1]=y; } string line; while(cin>>line){ for(int i =0;i<26;i++){ a[i][0]=b[i][0]; a[i][1]=b[i][1];} stack<char> s; int wrong=0; int time_mul=0,num=0; for(string::iterator t=line.begin(); t!=line.end(); t++){ if(*t=='(') { continue; } else if(*t==')'){ cal: if(s.empty()) continue; char c2=s.top(); s.pop(); if(s.empty()){ s.push(c2);continue; } char c1=s.top(); s.pop(); if(a[c1-65][1]!=a[c2-65][0]) {wrong=1; break;} time_mul+=a[c1-65][0]*a[c1-65][1]*a[c2-65][1]; a[c1-65][1]=a[c2-65][1]; s.push(c1); } else { s.push(*t);} if(t+1==line.end()) goto cal;//鲁 棒 性 } wrong==1&&(cout<<"error" <<endl); wrong==0&&(cout<<time_mul<<endl); } return 0; }
相关文章推荐
- UVa 442/HDU 1082/ZOJ 1094 Matrix Chain Multiplication(模拟&栈)
- UVA_442: Matrix Chain Multiplication
- uva 442 - Matrix Chain Multiplication (记忆化搜索 | 重做一年前的题)
- stack UVA 442 Matrix Chain Multiplication
- UVA 442 Matrix Chain Multiplication
- UVa 442 Matrix Chain Multiplication(矩阵链乘,模拟栈)
- UVA-442 Matrix Chain Multiplication
- Matrix Chain Multiplication UVA 442
- UVA - 442 Matrix Chain Multiplication
- UVa 442 Matrix Chain Multiplication(栈的应用)
- UVa 442 - Matrix Chain Multiplication
- 【例题 6-3 UVA - 442】Matrix Chain Multiplication
- UVa 442 - Matrix Chain Multiplication
- UVa 442 Matrix Chain Multiplication(栈)
- UVA 442 Matrix Chain Multiplication
- uva 442 Matrix Chain Multiplication
- UVA442 Matrix Chain Multiplication【DP】
- 例题6-3 Matrix Chain Multiplication ,Uva 442
- UVa 442 - Matrix Chain Multiplication
- 栈对于表达式求值的特殊作用&&UVa442 Matrix Chain Multiplication(矩阵链乘)的理解与解析