//40行 #include<iostream> #include<string> #include<stack> //stack用于字符串的存取处理 using namespace std; int main() { int num=0; string str; while(cin>>num) { int v[num*2]; for(int i=0;i<num>>v[i]; cin>>str; //以上步骤用于获取输入,变量有num、v、str int res=0; //存放最终的计算总数 int len=str.length(); stack<char> s1; //栈s1存放第一次遍历的字符 for(int i=len-1;i>=0;--i) //遍历字符串 { if(str[i]=='(') //如果遇到左括号'('就开始处理,否则压入s1 { char c=s1.top(); int first=c-'A'; s1.pop(); int sum=0; //记录一对括号内的计算次数 while(s1.top()!=')') { int num1=s1.top()-'A'; //记录第二个矩阵的位置信息 s1.pop(); //已经计算过的矩阵出栈 sum=sum+v[first*2]*v[num1*2]*v[num1*2+1]; //当前矩阵计算次数之和 v[first*2+1]=v[num1*2+1]; //更新第一个矩阵的大小 } s1.pop(); //s1内的右括号')'出栈 s1.push(c); //压入第一个矩阵 res+=sum; //计算总数 }else s1.push(str[i]); } cout<<res><</res></char></num></stack></string></iostream>
1

相关推荐

05-19 19:54
已编辑
杭州电子科技大学 Java
程序员小白条:《备考软考软件设计师》中级很简单的,不需要花很多时间,除非考软高,这简历找找杭州本地中小厂吧,也很难,项目这块还是最好有自己开发的思考,不要网上的亮点搬过来就行,看运气,本地有优势
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务