UVA 348 Optimal Array Multiplication Sequence 最优矩阵链乘 dp经典
来源:互联网 发布:vissim软件下载 编辑:程序博客网 时间:2024/06/05 19:00
这么久了还在dp入门这折腾orz。
题意:最优矩阵链乘,给出n个矩阵的大小,求出计算顺序,让计算量最小。
记忆化搜索,状态转移公式为 dp(begin, end) = { dp(begin, k) + dp(k + 1, end) + x[begin] * y[k] * y[end] | begin <= k <= end }
代码:
/** Author: illuz <iilluzen[at]gmail.com>* Blog: http://blog.csdn.net/hcbbt* File: 348.cpp* Create Date: 2013-09-26 20:01:23* Descripton: dp, martrix */#include <cstdio>#include <cstring>const int MAXN = 15;const int INF = 0x7fffffff;int x[MAXN], y[MAXN];int d[MAXN][MAXN], r[MAXN][MAXN];int dp(int a, int b) {if (d[a][b] != -1) return d[a][b];r[a][b] = a;if (a == b) return d[a][b] = 0;d[a][b] = INF;int t;for (int i = a; i < b; i++) {t = dp(a, i) + dp(i + 1, b) + x[a] * y[i] * y[b];if (t < d[a][b]) {d[a][b] = t;r[a][b] = i;}}return d[a][b];}void print(int a, int b) {if (a > b) return;if (a == b) printf("A%d", a + 1);else {printf("(");print(a, r[a][b]);printf(" x ");print(r[a][b] + 1, b);printf(")");}}int main() {int n, cas = 0;while (scanf("%d", &n) && n) {memset(d, -1, sizeof(d));for (int i = 0; i < n; i++)scanf("%d%d", &x[i], &y[i]);// dpdp(0, n - 1);printf("Case %d: ", ++cas);print(0, n - 1);puts("");}return 0;}
- UVA 348 Optimal Array Multiplication Sequence 最优矩阵链乘 dp经典
- UVA 348 Optimal Array Multiplication Sequence 最优矩阵链乘 区间DP
- UVa 348 Optimal Array Multiplication Sequence (DP 最优矩阵链乘)
- UVa 348 Optimal Array Multiplication Sequence (DP 最优矩阵链乘)
- UVA - 348 Optimal Array Multiplication Sequence 最优矩阵连乘
- UVA 348 Optimal Array Multiplication Sequence(最优矩阵链乘)
- 【UVA】348-Optimal Array Multiplication Sequence(矩阵链乘)
- UVa 348 Optimal Array Multiplication Sequence (区间DP&矩阵链乘,MCM)
- UVA - 348 Optimal Array Multiplication Sequence (最优矩阵连乘)
- uva 348 Optimal Array Multiplication Sequence (DP)
- UVa 348 Optimal Array Multiplication Sequence(dp)
- Optimal Array Multiplication Sequence - UVa 348 dp
- UVA 348 & ZOJ1276 Optimal Array Multiplication Sequence(dp , 矩阵链相乘问题)
- UVA 348 Optimal Array Multiplication Sequence(区间dp)
- uva 348 Optimal Array Multiplication Sequence(区间dp)
- UVA 348 Optimal Array Multiplication Sequence 区间DP
- UVA 348 Optimal Array Multiplication Sequence (区间DP)
- TOJ 2118 Optimal Array Multiplication Sequence 矩阵连乘 我会做DP了!
- 说说&和&&的区别——Java经典面试题系列
- 矩阵快速幂小结&反思 不断补充ing
- 在HQL中有两种方法实现使用参数占用符
- Oracle 10G中轻松发送email -- UTL_MAIL
- Codeforces 343D Water Tree
- UVA 348 Optimal Array Multiplication Sequence 最优矩阵链乘 dp经典
- vb.net画直线不消失,将图形保存为bmp文件
- position:fixed兼容性 IE6震动
- It is indirectly referenced from required .class files
- 借用搜狐接口,查看客户端ip地址
- Qt QTableWidget用法的一些小总结
- 苹果发布iPhone 5c及iPhone 5s 廉价版5c不便宜
- 视频播放器相关知识点
- C#实现CAD数据转shape或mdb