【棧解析表示式】例題6-3 UVa - 442
/*
演算法競賽入門 LRJ 例題6-3(UVA - 442)Matrix Chain Multiplication
棧解析表示式
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<stack>
#include<map>
#include<queue>
#include<cmath>
#include<algorithm>
#include<deque>
typedef long long LL;
using namespace std;
#pragma comment(linker, "/STACK:102400000,102400000")
const int INF=0x3f3f3f3f;
const int N = 10010;
struct node
{
int l,r;
}a[30];
stack<node> Q;
string s;
int main()
{
int n;
scanf("%d",&n);
for(int i = 0; i < n; i++)
{
getchar();
char c;
scanf("%c",&c);
scanf("%d%d",&a[c-'A'].l,&a[c-'A'].r);
}
while(cin >> s)
{
int ans = 0;
bool flag = true;
for(int i = 0; i < s.size(); i++)
{
if(s[i] == ')')
{
node x2 = Q.top();
Q.pop();
node x1 = Q.top();
Q.pop();
if(x1.r != x2.l)
{
flag = false;
break;
}
else
{
ans += x1.l*x1.r*x2.r;
x1.r = x2.r;
Q.push(x1);
}
}
else if(s[i] >= 'A' && s[i] <= 'Z')
Q.push(a[s[i]-'A']);
}
if(!flag) puts("error");
else printf("%d\n",ans);
}
return 0;
}
相關文章
- 例題6-3 Matrix Chain Multiplication ,Uva 442AI
- 解析url地址正規表示式程式碼例項
- 紫書 例題 10-27 UVa 10214(尤拉函式)函式
- 棧的應用——表示式求和
- 表示式計算 用棧完成
- 棧的應用---字尾表示式
- 表示式計算(棧的應用)
- 使用棧實現表示式求值,運用棧計算
- 棧在表示式求值中的應用
- 逆波蘭表示式求值——棧與佇列佇列
- 【雙端佇列】例題6-1 UVa 210佇列
- 正規表示式例項蒐集,通過例項來學習正規表示式。
- java 正規表示式 舉例Java
- java正規表示式例項Java
- .NET實現解析字串表示式字串
- 面試題之正規表示式解析一個完整的url面試題
- 使用棧結構計算中綴表示式
- 【棧】【字串語法】牛牛與字尾表示式字串
- 正規表示式子表示式程式碼例項
- Scala中的單例以及鏈式表示式單例
- 資料結構與演算法——棧(五)中綴表示式轉字尾表示式資料結構演算法
- Java 正規表示式例項操作Java
- js正規表示式例項(整理)JS
- 正規表示式關鍵詞解析
- Java入門:Lambda常用表示式解析Java
- 【資料結構】棧的應用---四則運算表示式求值(中綴表示式與字尾表示式轉換)資料結構
- JavaScript 立即執行函式表示式 ( IIFE ) 用例JavaScript函式
- 4、逆波蘭表示式求值——棧(java資料結構)Java資料結構
- 簡易表示式解析器編寫
- 正規表示式 基礎+使用案例解析
- 數學表示式解析器簡介
- resin與jetty解析el表示式差異Jetty
- 函式呼叫棧的問題函式
- UVA 673 括號的匹配——經典棧的應用
- UVA557 Burger 題解
- 通過js正規表示式例項學習正規表示式基本語法JS
- python正規表示式 小例幾則Python
- 正規表示式分組例項詳解