题目大意:
输入t ;t为测试用例个数
接下来t个测试 每个测试用例
第一行输入n; n为矩阵个数 保证n个矩阵依序是可乘的
接下来n行 每行输入p,q;p为长度q为宽度
对给定的n个矩阵确定一个计算次序使得总的乘法次数最少
并输出该最优值
Sample Input

1
4
50 10
10 40
40 30
30 5

Sample Output

10500

理论讲解

https://www.cnblogs.com/Jason-Damon/p/3231547.html

https://blog.csdn.net/wangmengmeng99/article/details/50134673

#include <bits/stdc++.h>
#define INF 0x3f3f3f3f
using namespace std;
int a[],dp[][];
//int pre[55][55];
// /* pre[i][j]=k 即 i到j之间由k断开
// 借此输出最小乘数的表达式 */
//void print_chain(int i, int j)
//{ // 递归输出最小连乘的表达式
// if (i==j) printf("矩阵%d",i);
// else
// {
// printf("(");
// print_chain(i,pre[i][j]);
// printf("*");
// print_chain(pre[i][j]+1,j);
// printf(")");
// }
//}
int main()
{
int t;
while(~scanf("%d",&t))
{
while(t--)
{
int n; scanf("%d",&n);
for(int i=;i<=n;i++)
{
int p,q; scanf("%d%d",&p,&q);
if(i==) a[]=p; a[i]=q;
} // 第一个存行和列 之后的只存列 //memset(pre,0,sizeof(pre));
memset(dp,INF,sizeof(dp)); // 初始化无穷大
for(int i=;i<=n;i++) dp[i][i]=;
/// 只有本身一个矩阵时 矩阵乘积为0 for(int i=;i<=n;i++) /// 枚举矩阵个数 由从小推大
for(int l=;l<=n-i+;l++) /// 枚举左端下标
{
int r=l+i-; // 根据个数 得到右端下标
dp[l][r]=dp[l+][r]+a[l-]*a[l]*a[r];
/// dp[l][r]视为 l矩阵*(dp[l+1][r])矩阵
//pre[l][r]=l; for(int k=l+;k<r;k++)
dp[l][r]=min(dp[l][r],
dp[l][k]+dp[k+][r]+a[l-]*a[k]*a[r]);
/// dp[l][r]视为 (dp[l][k])矩阵*(dp[k+1][r])矩阵 // 当需要记录 pre[][] 时
// {
// int tmp=dp[l][k]+dp[k+1][r]+a[l-1]*a[k]*a[r];
// if(tmp<dp[l][r]) dp[l][r]=tmp, pre[l][r]=k;
// }
}
// for(int i=1;i<=n;i++)
// {
// for(int j=1;j<=n;j++)
// printf("%d ",pre[i][j]);
// // printf("%d ",dp[i][j]);
// printf("\n");
// }
// print_chain(1,n); // 最小连乘表达式
// printf("\n");
printf("%d\n",dp[][n]); // 最小连乘次数
}
} return ;
}

矩阵连乘 /// 区间DP oj1900的更多相关文章

  1. POJ 1651 Multiplication Puzzle(类似矩阵连乘 区间dp)

    传送门:http://poj.org/problem?id=1651 Multiplication Puzzle Time Limit: 1000MS   Memory Limit: 65536K T ...

  2. 蓝桥 ADV-232 算法提高 矩阵乘法 【区间DP】

      算法提高 矩阵乘法   时间限制:3.0s   内存限制:256.0MB      问题描述 有n个矩阵,大小分别为a0*a1, a1*a2, a2*a3, ..., a[n-1]*a[n],现要 ...

  3. 蓝桥杯:矩阵乘法(区间DP)

    http://lx.lanqiao.cn/problem.page?gpid=T417 题意:…… 思路:n=1000,一开始觉得区间DP会超时,后来想不到其他做法就这样做了,居然没超时. 状态转移: ...

  4. tyvj 1198 矩阵连乘——区间dp

    tyvj 1198 矩阵连乘 题目描述 一个n*m矩阵由n行m列共n*m个数排列而成.两个矩阵A和B可以相乘当且仅当A的列数等于B的行数.一个N*M的矩阵乘以一个M*P的矩阵等于一个N*P的矩阵,运算 ...

  5. POJ1651 Multiplication Puzzle —— DP 最优矩阵链乘 区间DP

    题目链接:https://vjudge.net/problem/POJ-1651 Multiplication Puzzle Time Limit: 1000MS   Memory Limit: 65 ...

  6. 算法提高 矩阵乘法 区间DP

    这是神题,n <= 1000,如果是极限数据普通的n^3区间DP怎么可能过?可偏偏就过了. 刘汝佳大哥的训练指南上面说的存在nlgn的算法解决矩阵链乘问题,可是百度都找不到.... AC代码 # ...

  7. [jdoj1090]矩阵_区间dp

    矩阵 jdoj-1910 题目大意:给你连续的n个矩阵的长和宽,保证每连续的两个相邻矩阵满足相乘的条件,不能改变题目中矩阵的位置,求将这些矩阵相乘为一个矩阵的最小乘法次数. 注释:1<=n< ...

  8. P1005 矩阵取数游戏[区间dp]

    题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的\(m*n\)的矩阵,矩阵中的每个元素\(a_{i,j}\)均为非负整数.游戏规则如下: 每次取数时须从每行各取走一个元素,共n个.经过m次后 ...

  9. 区间dp复习 之 tyvj 1198 矩阵连乘

    题目描述 一个\(n*m\)矩阵由\(n\)行\(m\)列共\(n*m\)个数排列而成.两个矩阵\(A\)和\(B\)可以相乘当且仅当\(A\)的列数等于\(B\)的行数.一个\(N*M\)的矩阵乘以 ...

随机推荐

  1. CSS——浮动及应用&清除浮动

    浮动(float) 1.普通流(normal flow) 这个单词很多人翻译为 文档流 , 字面翻译 普通流 或者标准流都可以. 前面我们说过,网页布局的核心,就是用CSS来摆放盒子位置.如何把盒子摆 ...

  2. struts2-convention-plugin零配置

    零配置的意思并不是说没有配置,而是通过约定大于配置的方式,大量通过约定来调度页面的跳转而使得配置大大减少. <?xml version="1.0" encoding=&quo ...

  3. 【转载】WebRTC基于GCC的拥塞控制(上) - 算法分析

    实时流媒体应用的最大特点是实时性,而延迟是实时性的最大敌人.从媒体收发端来讲,媒体数据的处理速度是造成延迟的重要原因:而从传输角度来讲,网络拥塞则是造成延迟的最主要原因.网络拥塞可能造成数据包丢失,也 ...

  4. CF 622F (拉格朗日插值)

    传送门 解题思路 比较经典的一道题目.第一种方法是差分,就是假设\(k=3\),我们打一个表. 0 1 9 36 100 225 1 8 27 64 125 7 19 37 61 12 18 24 6 ...

  5. 码云挂了,无法访问gitee

    解决方式1.修改dns为114.114.114.114 2.hosts文件添加212.64.62.174   gitee.com

  6. NX二次开发-UFUN输入表达式名称,获取它的名称和值UF_MODL_ask_exp

    NX9+VS2012 #include <uf.h> #include <uf_modl.h> UF_initialize(); //创建一个新的表达式,有TAG tag_t ...

  7. (转)HashSet<T>类

    转载于:http://www.importnew.com/6931.html HashSet<T>类主要是设计用来做高性能集运算的,例如对两个集合求交集.并集.差集等.集合中包含一组不重复 ...

  8. 【python】遇到的错误

    呃.这学期在学python啦.之前虽然自学过,但都是跟着教程也没使用什么编译环境.没遇到奇奇怪怪的错误. 现在就当作一个记录贴吧. 用的编译工具是pycharm.电脑是MacBook Air 1.我在 ...

  9. Neo4j和Elasticsearch

    Neo4j和Elasticsearch Neo4j和Elasticsearch是一种让人眼前一亮的组合,为什么需要把搜索和图表结合起来呢?它们是如何使用的呢? 在无处不在的互联网搜索引擎的推动下,全文 ...

  10. JAVA API about HTTP 2

    import java.io.IOException; import java.nio.charset.Charset; import java.security.KeyManagementExcep ...