#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
const int msize = 100;
int p[msize];
int m[msize][msize],s[msize][msize];
int n;
void matrixchain()
{int i,j,r,k;memset(m,0,sizeof(m));  //初始化二维数组m 和 s memset(s,0,sizeof(s));for(r = 2; r <= n; r++)  //不同规模的子问题 {for(i = 1;i <= n-r+1; i++){j = i + r -1;m[i][j] = m[i+1][j] + p[i-1] * p[i] * p[j]; //决策为 k = i的乘法次数s[i][j] = i;   //子问题的最优策略是ifor(k = i+1; k < j; k++)  //对从i到j的所有决策,求最优值,记录最优策略 {int t = m[i][k] + m[k+1][j] + p[i-1] * p[k] * p[j];if(t < m[i][j]){m[i][j] = t;s[i][j] = k;} } } }
}void print(int i,int j){if(i == j){cout<< "A[" << i <<"]";return ;}cout << "(" ;print(i,s[i][j]);print(s[i][j]+1,j);cout<<")";}int main()
{cout<<"请输入矩阵的个数n: ";cin>>n;int i,j;cout<<"请依次输入每个矩阵的行数和最后一个矩阵的列数:" ;for(i = 0; i<= n;i++)cin>>p[i];matrixchain();print(1,n);cout<<endl;cout<< "最小计算量的值为 :"<< m[1][n] <<endl;
}

运行结果

算法导论——矩阵连乘相关推荐

  1. 矩阵链乘法 自顶向下 自底向上 Python 实现 算法导论

    算法导论 矩阵链乘法 自顶向下 自底向上 Python 实现 带备忘的自顶向下实现方式 def Memoized_Matrix_chain(p):n = len(p)m = [[0 for i in ...

  2. 《算法导论》——矩阵乘法的Strassen算法

    前言: 很多朋友看到我写的<算法导论>系列,可能会觉得云里雾里,不知所云.这里我再次说明,本系列博文时配合<算法导论>一书,给出该书涉及的算法的c++实现.请结合<算法导 ...

  3. 算法导论之单源最短路径

    单源最短路径,在现实中是很多应用的,是图的经典应用,比如在地图中找出两个点之间的最短距离.最小运费等.单源最短路径的问题:已知图G=(V,E),找出给定源顶点s∈V到每个顶点v∈V的最短路径.单源最短 ...

  4. 算法导论之图的基本算法

    图是一种数据结构,有关图的算法是计算机科学中基础性的算法.这个论述恰如其分. 图的基本算法包括图的表示方法和图的搜索方法.图的搜索技术是图算法领域的核心,有序地沿着图的边访问所有顶点,可以发现图的结构 ...

  5. 算法导论之贪心算法(Huffman编码和拟阵)

    贪心算法,在解决最优化问题上,通过得到子问题的局部最优解来合成问题的一个解,以局部最优选择来输出一个全局最优解. 问题要用贪心算法来求解,需满足和动态规划一样的最优子结构特征,同时还需要再每个子问题最 ...

  6. c语言大数相乘的算法_MIT 算法导论(三)

    标签:b站MIT算法导论课程的一些笔记,整理以(bu)后(hui)看 代码引用标记: 归并排序的C语言实现 第三节 分治法 分治法(Divide and conquer) 1) 分治法的步骤 把问题分 ...

  7. 你是如何坚持读完《算法导论》这本书的?(帖子收集)

    你是如何坚持读完<算法导论>这本书的? <算法导论>不够猛,答者顺便补充 "你是如何坚持读完<计算机编程的艺术>这本书的?" 罗必成: CLRS ...

  8. 矩阵相乘的strassen算法_矩阵乘法的Strassen算法+动态规划算法(矩阵链相乘和硬币问题)...

    矩阵乘法的Strassen 这个算法就是在矩阵乘法中采用分治法,能够有效的提高算法的效率. 先来看看咱们在高等代数中学的普通矩阵的乘法 两个矩阵相乘 上边这种普通求解方法的复杂度为: O(n3) 也称 ...

  9. 【啃不完的算法导论】- 动态规划 - 最长公共子序列(概念篇)

    以下内容纯是为了熟悉<算法导论>中的内容,高手可略过,其中涉及的书本内容的版权归原作者.译者.出版社所有 ========================================= ...

最新文章

  1. 不同平台上安装python一样吗_在多个平台如何安装Python
  2. 基准分类模型、分类应用(多分类数字识别、疾病预测、欺诈检测)、监督学习总结
  3. (完全解决)Windows如何使用批处理命令进行SSH连接并自动输入密码
  4. bzoj 36733674: 可持久化并查集 by zky
  5. 为维护视图创建事物码
  6. ibm z系列服务器 cpu,低调发布:看IBM System Z系列大型机CPU
  7. 佳能打印机ip90 64位系统的驱动_佳能打印机如何安装 佳能打印机漏墨如何解决【详解】...
  8. 实验5.5 定义一个Employee类
  9. Python入门--顺序结构,选择结构,对象的布尔值
  10. ubuntu下手动安装php-amqp模块教程
  11. Netty文章目录汇总
  12. await和async
  13. 交换机trunk模式工作原理
  14. win10系统文件拖拽卡顿_如何解决Win10鼠标拖动窗口有延迟?
  15. 如何启动联想计算机的休眠模式,如何设置休眠、待机、睡眠
  16. activiti流程图下发任务报错,不能正常流转到下一个处理步骤
  17. JavaScript中事件的绑定与解绑
  18. 【HAOI2014】贴海报
  19. 浅谈自媒体带货底层逻辑及公众号变现操作路径
  20. 主存/内存/外存 区分

热门文章

  1. js基础常考面试题汇总(一)(附答案)
  2. matlab定义多维数组长度,matlab如何定义三维数组
  3. 单面打印机打印小册子_如何在Microsoft Word中创建可打印的小册子
  4. MySQL之——MySQL远程连接丢失问题解决方法(Lost connection to MySQL server)
  5. 计算机网络知识复习-计算机网络相关概念及网络分层架构模型
  6. 大航海时代——海上霸主带来的启示
  7. 商店销售某一商品,商店每天公布统一的折扣(discount)
  8. 中鑫优配股票配资网站:11月10日周三早间市场信息
  9. 抓包软件抓取手机数据(app,浏览器等)
  10. 使用Squirrel连接Phoenix