UVA442-栈
Posted 菜菜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVA442-栈相关的知识,希望对你有一定的参考价值。
题意:
求矩阵相乘的次数,用栈
WA了这么多次
下次还是不能去猜题意,o(︶︿︶)o 唉
#include<iostream> #include <stdio.h> #include <memory.h> using namespace std; struct Node { int r; int c; }; int main() { freopen("d:\\\\1.txt", "r", stdin); int total; Node node[26]; cin >> total; char cc; int r, c; while (total--) { cin >> cc >> r >> c; Node nn; nn.r = r; nn.c = c; node[cc-\'A\'] = nn; } string str; while (cin>>str) { // cout << str << endl; total = 0; Node stack[1000]; int s = 0; bool error = false; int length = str.length(); for(int i = 0; i < length; i++) { cc = str.at(i); if(cc == \')\') { //pop; Node node2 = stack[--s]; Node node1 = stack[--s]; //r1*c1*c2 if(node1.c != node2.r) { error = true; break; } total += node1.r * node1.c * node2.c; Node node3; node3.r = node1.r; node3.c = node2.c; stack[s++] = node3; } else if(\'A\' <= cc && cc <= \'Z\') { stack[s++] = node[cc - \'A\']; } } if(error) cout << "error" << endl; else cout << total << endl; } return 0; }
以上是关于UVA442-栈的主要内容,如果未能解决你的问题,请参考以下文章
UVA - 442 Matrix Chain Multiplication(栈模拟水题+专治自闭)
UVa442 Matrix Chain Multiplication (栈)