uva 442 - Matrix Chain Multiplication (记忆化搜索 | 重做一年前的题)
来源:互联网 发布:js调用ajax方法 编辑:程序博客网 时间:2024/06/07 14:32
本文出自 http://blog.csdn.net/shuangde800
题目链接: 点击打开链接
题目大意
给出一系列的矩阵,给他们取名A ,B…… 并且给出了它们的行数和列数。给完后,给出一系列的表达式,然后要求求出按这些表达式进行计算,会有多少次乘法步骤。
思路
这题去年的暑假是有做过的,在《入门经典》的数据结构专题 ... 打开
现在在看一年前的代码,无论是方法还是代码都觉得不是一般地搓 - -||
在过几个月后看今天写的代码还是会觉得搓吧。
不过这次既然归到了dp专题,那么就用dp的方法来做吧。
(以上是题外话)
很明显看出可以递归求解,而且可转为递推区间dp求解
f(i, j) 表示在(i,j)区间中一共有几次相乘
row(i, j)表示这个区间相乘后的矩形行尺寸
col(i, j) 表示这个区间相乘后的矩形列尺寸
递归时维护这三个数组即可
那么如果str[i]='('且str[j]=')', 就递推求解子问题f(i+1, j-1)
如果只有一边是括号,那么递推求解f(i+1, j) 和 f(i, j-1)
接着枚举终点k, 当这个划分合法时:
f(i, j) = f(i,k) + f(i,k+1) + row(i,k)*row(k+1,j)*col(k+1,j)
代码
- uva 442 - Matrix Chain Multiplication (记忆化搜索 | 重做一年前的题)
- uva 442 Matrix Chain Multiplication(模拟)
- Matrix Chain Multiplication (UVa 442)
- UVA 442 Matrix Chain Multiplication(栈)
- UVA 442-Matrix Chain Multiplication(栈的运用)
- UVa 442 Matrix Chain Multiplication
- Uva 442 Matrix Chain Multiplication
- UVa 442 Matrix Chain Multiplication
- uva 442 - Matrix Chain Multiplication
- UVa 442 - Matrix Chain Multiplication
- UVa 442 - Matrix Chain Multiplication
- UVa 442 Matrix Chain Multiplication
- UVA 442 Matrix Chain Multiplication
- uva 442 - Matrix Chain Multiplication
- uva 442 Matrix Chain Multiplication
- UVa 442 - Matrix Chain Multiplication
- UVa 442 - Matrix Chain Multiplication
- uva 442Matrix Chain Multiplication
- bat命令大全
- 关于我们小组共享学习的一点想法:
- appserv 发生httpd.exe xxx不能为read的错误
- std::map用法
- IOS StoryBoard修改对于真机无效的问题
- uva 442 - Matrix Chain Multiplication (记忆化搜索 | 重做一年前的题)
- Android中SQLite应用详解
- uva 10387 - Billiard
- uva 10453 - Make Palindrome (区间dp,记忆化搜索)
- 【算法导论】二叉树的建立
- 在github上管理项目
- HBase列族高级配置
- C语言字符串的指针
- AsyncTask简单应用(一)