首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
其他好文
> 详细
UVA442 Matrix Chain Multiplication
时间:
2015-06-05 00:34:48
阅读:
116
评论:
0
收藏:
0
[点我收藏+]
标签:
1
#include <cstdio>
2
#include <iostream>
3
#include <
string
>
4
#include <stack>
5
6
using
namespace
std;
7
8
struct
Matrix {
9
int
r,c;
10
Matrix(
int
a = 0,
int
b = 0) : r(a), c(b) {};
11
}m[26];
12
13
stack<Matrix> s;
14
15
int
main()
16
{
17
18
int
n;
19
cin >> n;
20
for
(
int
i = 0; i < n; i++) {
21
string
name;
22
cin >> name;
23
int
k = name[0] - ‘A‘;
24
cin >> m[k].r >> m[k].c;
25
26
}
27
28
string
expr;
29
while
(cin >> expr) {
30
31
int
len = expr.size();
//
获取字符串的大小,因为这整个字符串都没有空格
32
bool
error =
false
;
33
int
ans = 0;
34
for
(
int
i = 0; i < len; i++) {
//
循环整个表达式、思路是遇到右括号就出栈两个Matrix进行计算,算完在压回。
35
//
其实你可以发现带括号的表达式十分符合栈,而不仅仅是该题目,首先左括号越深
36
//
其计算的有先级别越高,而右括号又和左括号配对,如果我们从左到右读取一个表达式
37
//
每次一遇到右括号,其前面到左括号的部分肯定就是这个表达式最优先的部分。
38
if
(isalpha(expr[i])) { s.push(m[expr[i] - ‘A‘]); }
39
else
if
(‘)‘ == expr[i]) {
40
Matrix m2 = s.top(); s.pop();
41
Matrix m1 = s.top(); s.pop();
42
if
(m1.c != m2.r) { error =
true
;
break
; }
43
ans += m1.r * m1.c * m2.c;
44
s.push(Matrix(m1.r, m2.c));
45
}
46
47
}
48
49
if
(error) printf("error\n");
else
printf("%d\n", ans);
50
51
}
52
53
return
0;
54
}
55
2015/4/10下午6:32:37
By sixleaves
UVA442 Matrix Chain Multiplication
标签:
原文地址:http://www.cnblogs.com/objectc/p/4553401.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
分布式事务
2021-07-29
OpenStack云平台命令行登录账户
2021-07-29
getLastRowNum()与getLastCellNum()/getPhysicalNumberOfRows()与getPhysicalNumberOfCells()
2021-07-29
【K8s概念】CSI 卷克隆
2021-07-29
vue3.0使用ant-design-vue进行按需加载原来这么简单
2021-07-29
stack栈
2021-07-29
抽奖动画 - 大转盘抽奖
2021-07-29
PPT写作技巧
2021-07-29
003-核心技术-IO模型-NIO-基于NIO群聊示例
2021-07-29
Bootstrap组件2
2021-07-29
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!