首页 > 代码库 > UVA442-栈

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-栈