这么久了还在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]);
// dp
dp(0, n - 1);
printf("Case %d: ", ++cas);
print(0, n - 1);
puts("");
}
return 0;
}
分享到:
相关推荐
Optimal State Estimation - Kalman, Hoo and Nonlinear Approaches SOLUTION MANUAL 分为两部分这是习题部分;
Optimal State Estimation - Kalman, Hoo and Nonlinear Approaches SOLUTION MANUAL 2 程序练习部分,习题部分请参考http://download.csdn.net/detail/mchen_6431/7848011
30节点系统最优潮流计算,自编程序,可供最优潮流计算研究初学者提供系统分析;
最优控制的matlab基础,主要包括最优控制中常用的matlab知识
最优潮流计算,matlab版,希望对电力系统仿真的同志有用!
Optimal Binary Training Sequence Design for multiple-antenna systems over dispersive fading channels 分享论文
Optimal Training Sequence for MIMO Wireless
基于MATLAB的最优控制原理的最优步长发梯度计算
优化控制领域的经典教材,Frank W. Lewis 教授是该领域的大牛,也是自适应动态规划的提出者,想对优化控制有更好理解的值得下载。
这是最优传输理论(optimal transport theory)实现的工具箱,里面包含了完整的matlab代码。代码绝对可行!!!
Optimal-LSH 提供了可高效执行的局部性敏感哈希(LSH)。实现了 LSH 最优参数计算。 标签:Optimal
致谢 概述COSMA是并行,高性能,GPU加速的矩阵矩阵乘法算法,对于矩阵尺寸,处理器数量和内存大小的所有组合,都是通信最佳的,而无需任何参数调整。 COSMA背后的关键思想是首先得出一个严格的最佳顺序计划,然后才...
这个是算法课的作业,内涵完整代码,实现以界面形式展示,能够在界面上选点,自动展示最优剖份方案
1.版本:matlab2014/2019a/2021a,内含运行结果,不会运行可私信 2.领域:智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,更多内容可点击博主头像 ...
用动态规划的算法实现最优二叉检索树,使得在检索数据过程中花费的代价最小
最快的稀疏矩阵乘法运算,英文版 Let A and B two n £ n matrices over a ring R (e.g., the reals or the integers) each containing at most m non-zero elements. We present a new algorithm that multiplies A...
跨域对齐的图最优传输框架 概括 在这项工作中,应用了Gromov-Wasserstein和Wasserstein距离来提高不同的跨域对齐任务的性能,例如VQA,机器翻译等。 象征性 注意,VQA模型是在基础上开发的。 并在建立了机器翻译...
逆最优安全滤波器_Inverse Optimal Safety Filters.pdf
Daniel Liberzon 的关于变分法和最优控制的英文书,Calculus of Variations and Optimal Control Theory,适合入门和打基础。
关于动态最优潮流的文献,运用内点法解耦计算,值得学习,不过有点难