poj2246 stl
来源:互联网 发布:淘宝虚拟物品代理 编辑:程序博客网 时间:2024/06/03 17:15
题意:已知一些矩阵的行数和列数,给你这些矩阵的算式,只包括括号和乘法,让你判断这些算式是否合法以及他们的运算次数。
两矩阵相乘,则前的列数必须等于后者的行数,用map储存矩阵的行和列,将矩阵存入栈中若读入左括号则跳过,若读入右括号,则取出栈顶两个矩阵判断二者能否相乘,注意顺序(先取出的行和后取的列),若读入一个矩阵则入栈
#include<cstdio>#include<algorithm>#include<iostream>#include<map>#include<stack>using namespace std;struct Node{int x;int y;};map<char,Node> mp;int main(){int n;cin>>n;for(int i=0;i<n;i++){ char c; cin>>c; cin>>mp[c].x>>mp[c].y;}string s;while(cin>>s){ int ans=0,i; stack<Node> que; for(i=0;i<s.size();i++){ if(s[i]=='('){ continue; } else if(s[i]==')'){ Node b=que.top(); que.pop(); Node a=que.top(); que.pop(); if(a.y!=b.x){ cout<<"error"<<endl; break; } ans+=(a.x*a.y*b.y); Node p; p.x=a.x; p.y=b.y; que.push(p); } else if(s[i]<='Z'||s[i]>='A') que.push(mp[s[i]]);}if(i==s.size())cout<<ans<<endl;}}
0 0
- poj2246 stl
- poj2246
- poj2246
- POJ2246 水
- poj2246 - Matrix Chain Multiplication
- poj2246--数据结构栈
- poj2246 Matrix Chain Multiplication (栈)
- poj2246 Matrix Chain Multiplication 矩阵连乘
- stl
- stl
- STL
- STL
- STL
- STL
- STL
- STL
- STL
- stl
- 条件变量经典实例
- 链表t1
- Scrapy ImportError: No module named items
- 蓝牙广播数据格式和动态改变
- vc2010编译boost1.63.0
- poj2246 stl
- java 动态代理
- Android 获取屏幕相关信息
- HDU1877 又一版A+B 浙大计算机研究生复试上机考试-2008年
- 事务隔离级别
- Linux相关网络资源收集
- Java中多进程程序优先级的设定与使用
- RSA javax.crypto.BadPaddingException: Blocktype mismatch: 0 错误
- Linux系统程序自动运行三法