uva 442
来源:互联网 发布:如何查询淘宝信用 编辑:程序博客网 时间:2024/05/16 15:54
题目没什么说的,直接栈模拟,由于题目说明给出的字符串是合理的,也就不用检查合法性,遇到右括号就出两个进一个新矩阵。
看到别人的代码可以先扫一遍判断是否可以连乘,这样可以节省时间,看来线代又没学好。
另外c++下struct可以带构造函数,用起来比较方便。
#include <iostream>#include<cstdio>using namespace std;struct mtrx{ int r,c; mtrx(int a,int b){ r=a; c=b; } mtrx(){ r=0;c=0; }};int m[100][2],ans;mtrx fun(mtrx a,mtrx b){ mtrx c(a.r,b.c); if(a.c!=b.r) ans=0; else ans+=a.c*a.r*b.c; return c;}int main(){ int n; cin>>n; for(int i=0;i<n;i++){ char c; int a,b; cin>>c>>a>>b; m[c][0]=a; m[c][1]=b; } getchar(); char s[1000]; mtrx sta[200]; while(gets(s)){ if( s[1]==0 ) {cout<<0<<endl; continue;} int top=0,i=0; ans=0; while(s[++i]!=0){ if(s[i]=='(') continue; if(s[i]!=')'){ mtrx a(m[s[i]][0],m[s[i]][1]); sta[++top]=a; continue; } sta[--top]=fun(sta[top],sta[top+1]); if(!ans) break; } if(!ans) cout<<"error\n"; else cout<<ans<<endl; } return 0;}
- uva 442
- UVA 442
- uva 442
- uva 442
- uva 442
- uva 442
- UVA - 442
- UVA 442
- UVA 442
- UVA 442
- uva oj 442
- uva 442(线性表)
- uva
- UVA
- UVA
- UVA
- uva
- UVA
- VC++ MFC 中动态更改透明背景的静态文本时重叠现象(尤其是界面设置了背景图片时)
- 微信接口开发报错处理
- 接口
- Android--hw_get_module解析
- 第八次作业元胞自动机NO.1
- uva 442
- 动态加载的同一个Label的同一行字体显示不同的颜色
- android app 测试参考质料
- Java继承和重写
- 记一次磁盘IO高问题排查过程
- O(1)时间删除节点
- C++让基类握住派生类的指针
- 使用ActiveReports创建动态区段报表
- .net Romting 中的对象生命周期