UVa442 Matrix Chain Multiplication(栈)
#include<cstdio>
#include<cstring>
#include<stack>
#include<algorithm>
#include<iostream>
using namespace std; struct matrix {
int a,b;
matrix(int a=,int b=):a(a),b(b) {}//结构体构造函数赋值
}m[]; stack<matrix>s; int main()
{
int n;
char A;
scanf("%d",&n);
for(int i=;i<=n;i++)
{
cin >> A;
int k=A-'A';
cin >> m[k].a >> m[k].b;
}
string expr;
while(cin >> expr)
{
int len = expr.length();
int flag = ;
int ans = ;
for(int i = ; i < len; i++) {
if(isalpha(expr[i])) s.push(m[expr[i]-'A']);
else if(expr[i] == ')')
{
matrix m2 = s.top(); s.pop();
matrix m1 = s.top(); s.pop();
if(m1.b != m2.a)
{
flag = ;
break;
}
ans += m1.a*m1.b*m2.b;
s.push(matrix(m1.a,m2.b));
}
}
if(flag) printf("error\n");
else printf("%d\n",ans);
}
return ;
}
UVa442 Matrix Chain Multiplication(栈)的更多相关文章
- UVa442 Matrix Chain Multiplication
// UVa442 Matrix Chain Multiplication // 题意:输入n个矩阵的维度和一些矩阵链乘表达式,输出乘法的次数.假定A和m*n的,B是n*p的,那么AB是m*p的,乘法 ...
- ACM学习历程——UVA442 Matrix Chain Multiplication(栈)
Description Matrix Chain Multiplication Matrix Chain Multiplication Suppose you have to evaluate ...
- UVA442 Matrix Chain Multiplication 矩阵运算量计算(栈的简单应用)
栈的练习,如此水题竟然做了两个小时... 题意:给出矩阵大小和矩阵的运算顺序,判断能否相乘并求运算量. 我的算法很简单:比如(((((DE)F)G)H)I),遇到 (就cnt累计加一,字母入栈,遇到) ...
- uva-442 Matrix Chain Multiplication
Suppose you have to evaluate an expression like A*B*C*D*E where A,B,C,D and E are matrices. Since ma ...
- UVa 442 Matrix Chain Multiplication(矩阵链,模拟栈)
意甲冠军 由于矩阵乘法计算链表达的数量,需要的计算 后的电流等于行的矩阵的矩阵的列数 他们乘足够的人才 非法输出error 输入是严格合法的 即使仅仅有两个相乘也会用括号括起来 并且括号中 ...
- Matrix Chain Multiplication(表达式求值用栈操作)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1082 Matrix Chain Multiplication Time Limit: 2000/100 ...
- UVA——442 Matrix Chain Multiplication
442 Matrix Chain MultiplicationSuppose you have to evaluate an expression like A*B*C*D*E where A,B,C ...
- Matrix Chain Multiplication[HDU1082]
Matrix Chain Multiplication Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (J ...
- UVA 442 二十 Matrix Chain Multiplication
Matrix Chain Multiplication Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %l ...
随机推荐
- Flask之 安装与HelloWorld
安装Flask 首先我们来安装Flask.最简单的办法就是使用pip. pip install flask 然后打开一个Python文件(app.py),输入下面的内容并运行该文件.然后访问local ...
- python selenium Chrome模拟手机浏览器(十七)
在做移动端页面测试时可以利用Chrome mobile emulation 辅助完成页面的适配问题,但是目前手机市场上的型号居多我们也没有办法通过人工的模式一一的去适配,所以这里考虑到通过自动化的模式 ...
- Git 安装和使用教程
Git 安装和使用教程 git 提交 全部文件 git add . git add xx命令可以将xx文件添加到暂存区,如果有很多改动可以通过 git add -A .来一次添加所有改变的文件.注意 ...
- 黄聪:mysql主从配置(清晰的思路)
mysql主从配置.鄙人是在如下环境测试的: 主数据库所在的操作系统:win7 主数据库的版本:5.0 主数据库的ip地址:192.168.1.111 从数据库所在的操作系统:linux 从数据的版本 ...
- 【转】使用Eclipse,将鼠标放在相应方法或字段等元素上时,无法显示提示
使用Eclipse编写java代码时,将鼠标放在相应方法或字段等元素上时,会有对应的说明或提示. 不过,常出现下面的问题: Note:An exception occurred while getti ...
- linux启动脚本,暂停脚本
启动脚本: #!/bin/sh net_server_id="nw-server-001" net_server_name="cictec-network-bus-ser ...
- Butterknife--Android Butterknife使用方法总结(转)
原文链接:http://blog.csdn.net/donkor_/article/details/77879630 前言: ButterKnife是一个专注于Android系统的View注入框架,以 ...
- IdentityServer4(一)使用客户端凭证方式
这个篇文章主要是记录自己参考官方文档搭建身份认证的过程 使用的.NET Core2.2 参考地址:https://identityserver4.readthedocs.io/en/latest/qu ...
- 转载:揪出MySQL磁盘消耗迅猛的真凶
揪出MySQL磁盘消耗迅猛的真凶 背景 Part1:写在最前 当一张单表10亿数据量的表放在你面前,你将面临着什么? Part2:背景介绍 为了提升数据库资源利用率,一个实例中,在不互相影响,保证业务 ...
- 数学模块_math
ceil 进一, 向上取整 floor 向下取整 pow(x, y) x的y次方 print(math.pow(2, 3)) # 8.0 sqrt(x) x的开平方(结果为浮点数) print(mat ...