矩阵连乘算法:采用动态规划m[i][j]记录最优解值,s[i][j]记录最优解。

#include<iostream>
#include<algorithm>
#include<cstring>
const int maxn=505;
using namespace std;
int s[maxn][maxn];
int m[maxn][maxn];
int a[maxn];
int p[maxn];
int N;
struct node{int x,y;
};
void MAxtrai(int n,int p[]){for(int i=1;i<=n;i++){//单个矩阵相乘,所需数乘次数为零 m[i][i]=0;}for(int r=2;r<=n;r++){//不同规模的子问题 for(int i=1;i<=n-r+1;i++){//每一个规模r的矩阵连乘序列的首矩阵 Aiint j=r+i-1;//每一个规模r的矩阵连乘序列的尾矩阵 Ajm[i][j]=m[i+1][j]+p[i-1]*p[i]*p[j];//决策为k=i的乘法次数 s[i][j]=i;for(int k=i+1;k<j;k++){//对Ai……Aj的所有决策,求最优值,记录最优决策 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;}}}}
}
int main(){while(cin>>N){if(N==0)break;memset(m,0,sizeof(m));memset(s,0,sizeof(s));memset(a,0,sizeof(a));memset(p,0,sizeof(p));for(int i=1;i<=N;i++){cin>>p[i];}MAxtrai(N,p);cout<<m[2][N]<<endl;  }return 0;
}

poj1651(矩阵连乘)相关推荐

  1. POJ-1651 Multiplication Puzzle 矩阵连乘问题(区间dp)

    题意 给我们n个数 让我们随意的跳出其中的数 每挑出一个数 计算代价为左边数* 当前数 * 右边的数 除了首尾两个数不选 中间的数可以任意挑 让我们求最小代价 CODE #include<bit ...

  2. 给定一个 n X n 的矩阵 和 R,求旋转 90 X R 度以后的矩阵

    1. 问题 [例题]循环输入,每组数据先输入一个 n(n<=10),然后 n 行 n 列数据代表一个矩阵, 每个数据为一个整数,然后再给出一个数字 R,输出这个矩阵按照顺时针旋转 90 X R ...

  3. 顺时针打印矩阵 python

    前言 题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2 ...

  4. 矩阵乘以其矩阵转置求导-数学

    20210703 矩阵论 https://zhuanlan.zhihu.com/p/288541909?utm_source=wechat_session 矩阵运算法则 20210529 https: ...

  5. 矩阵的卷积核运算(一个简单小例子的讲解)深度学习

    卷积运算:假设有一个卷积核h,就一般为3*3的矩阵: 有一个待处理矩阵A: h*A的计算过程分为三步 第一步,将卷积核翻转180°,也就是成为了 第二步,将卷积核h的中心对准x的第一个元素,然后对应元 ...

  6. LeetCode简单题之二进制矩阵中的特殊位置

    题目 给你一个大小为 rows x cols 的矩阵 mat,其中 mat[i][j] 是 0 或 1,请返回 矩阵 mat 中特殊位置的数目 . 特殊位置 定义:如果 mat[i][j] == 1 ...

  7. LeetCode简单题之距离顺序排列矩阵单元格

    题目 给定四个整数 row , cols , rCenter 和 cCenter .有一个 rows x cols 的矩阵,你在单元格上的坐标是 (rCenter, cCenter) . 返回矩阵中的 ...

  8. LeetCode简单题之判断矩阵经轮转后是否一致

    题目 给你两个大小为 n x n 的二进制矩阵 mat 和 target .现 以 90 度顺时针轮转 矩阵 mat 中的元素 若干次 ,如果能够使 mat 与 target 一致,返回 true : ...

  9. LeetCode简单题之矩阵中的幸运数

    题目 给你一个 m * n 的矩阵,矩阵中的数字 各不相同 .请你按 任意 顺序返回矩阵中的所有幸运数. 幸运数是指矩阵中满足同时下列两个条件的元素: 在同一行的所有元素中最小 在同一列的所有元素中最 ...

最新文章

  1. 财务人员学python有用吗-python在财务里面有用吗
  2. wxWidgets:wxHashSet类用法
  3. 软工网络15个人阅读作业2——提问题
  4. php 常用的日期函数,常用php日期函数总结
  5. Java学习日志(四)
  6. Q110:PBRT-V3十大基类对应的继承关系
  7. Android 四大组件学习之BroadcastReceiver一
  8. C++中的智能指针类模板
  9. Java循环练习: 有1、2、3、4四个数字,能组成多少个无重复数字的三位数?都是多少?...
  10. hive相关的example
  11. python安装numpy模块教程_python安装numpy科学计算模块
  12. 创建 C++ WinRT 组件
  13. PDP context激活的大致原理
  14. OSChina 周日乱弹 ——苟富贵,勿相忘。
  15. 人们怎么总跟质数过不去?
  16. 前端页面添加灰色滤镜,使网页整体变灰
  17. redis.set方法详解
  18. 闲置手机改摩托车车机导航,支持短时停车休眠,长时停车断电,点火开机(大屏平板也可参照此方案用于汽车)
  19. 大一下期计算机考试试题操作题,2016年大一计算机考试操作题
  20. 信佑linux教程,迅闪/信佑Linux无盘(二代虚拟盘)常用命令

热门文章

  1. 路由算法与路由协议概述
  2. ACMNO.8输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 输入 一行字符 输出 统计值 样例输入 aklsjflj123 sadf918u324 asdf91u32
  3. 干货 | tensorflow模型导出与OpenCV DNN中使用
  4. OpenVINO + OpenCV实现点头与摇头识别验证
  5. Task03——零基础入门NLP - 基于机器学习的文本分类
  6. 栈与队列2——两个栈组成队列
  7. iOS 项目集成Flutter
  8. P2055 [ZJOI2009]假期的宿舍
  9. 抽点时间让我们一起来学linux系统
  10. Hexo 个人博客 SEO 优化(3):改造你的博客,提升搜索引擎排名