题意:给出n个矩阵组成的序列,问最少的运算量

看的紫书: dp[i][j]表示从第i个矩阵到第j个矩阵最少的乘法次数

dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+p[i-1]*p[k]*p[j]);

边界条件为dp[i][i]=0,因为从一个矩阵自己到它自己不需要做乘法 然后把dp[i][j]初始化为一个极大的值,再来求最小值

学习的这一篇:http://blog.csdn.net/dgq8211/article/details/7492186

还有这一篇:http://blog.csdn.net/u012804490/article/details/26152337

 #include<iostream>
#include<cstdio>
#include<cstring>
#include <cmath>
#include<stack>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<algorithm>
#define mod=1e9+7;
using namespace std; typedef long long LL;
const int maxn=;
const int INF = 0x7fffffff;
int dp[maxn][maxn],p[maxn]; int main(){
int n,i,j,ans,k,len;
while(scanf("%d",&n)!=EOF&&n){
for(i=;i<=n;i++) cin>>p[i-]>>p[i]; memset(dp,,sizeof(dp)); for(len=;len<n;len++){ //连乘的矩阵的长度
for(i=;i<=n-len;i++){ //连乘的矩阵的起点
j=i+len;
dp[i][j]=INF;
for(k=i;k<j;k++){ //连乘的矩阵的终点
dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+][j]+p[i-]*p[k]*p[j]);
// printf("dp[%d][%d]=%d\n",i,j,dp[i][j]);
}
}
}
printf("%d\n",dp[][n]);
}
return ;
}

go---go---go-

NYOJ 536 开心的mdd【矩阵链乘】的更多相关文章

  1. NYOJ 536 开心的mdd(DP)

    开心的mdd 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 himdd有一天闲着无聊,随手拿了一本书,随手翻到一页,上面描述了一个神奇的问题,貌似是一个和矩阵有关的 ...

  2. [NYOJ 536] 开心的mdd

    开心的mdd 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述himdd有一天闲着无聊,随手拿了一本书,随手翻到一页,上面描述了一个神奇的问题,貌似是一个和矩阵有关的东西. ...

  3. 【UVa-442】矩阵链乘——简单栈练习

    题目描述: 输入n个矩阵的维度和一些矩阵链乘表达式,输出乘法的次数.如果乘法无法进行,输出error. Sample Input 9 A 50 10 B 10 20 C 20 5 D 30 35 E ...

  4. POJ1260 Pearls(dp,矩阵链乘法)

    题目链接. 题目大意: 给定一个n,和两个序列a[i], p[i]. a[i] 表示需要购买 i品质 的数量,p[i] i 等级的价格. 1.每个品质都会有不同的价格,价格依据品质上升而上升 2.买一 ...

  5. COJ 0016 20603矩阵链乘

    传送门:http://oj.cnuschool.org.cn/oj/home/solution.htm?solutionID=35454 20603矩阵链乘 难度级别:B: 运行时间限制:1000ms ...

  6. Algorithm --> 矩阵链乘法

    动态规划--矩阵链乘法 1.矩阵乘法       Note:只有当矩阵A的列数与矩阵B的行数相等时A×B才有意义.一个m×r的矩阵A左乘一个r×n的矩阵B,会得到一个m×n的矩阵C. #include ...

  7. CODEVS 3546 矩阵链乘法

    http://codevs.cn/problem/3546/ 题目 给定有n个要相乘的矩阵构成的序列(链)<A1,A2,A3,.......,An>,要计算乘积A1A2.....An.一组 ...

  8. UVa 10003 切木棍(区间DP+最优矩阵链乘)

    https://vjudge.net/problem/UVA-10003 题意: 有一根长度为L的棍子,还有n个切割点的位置.你的任务是在这些切割点的位置处把棍子切成n+1部分,使得总切割费用最小.每 ...

  9. (最大矩阵链乘)Matrix-chain product

    Matrix-chain product. The following are some instances. a)       <3, 5, 2, 1,10> b)       < ...

随机推荐

  1. Reference in the manifest does not match the identity of the downloaded assembly

    solution 1 :http://stackoverflow.com/questions/5337458/error-deploying-clickonce-application-referen ...

  2. 【BZOJ】【1029】【JSOI2007】建筑抢修

    贪心 按T2(完成时限)排序,然后从前往后依次枚举 如果sum+a[i].t1<=a[i].t2则加入 如果来不及修这个建筑: 如果当前这个建筑的维修时间t1比之前修过的建筑中耗时最长的耗时短, ...

  3. WinForm员工信息表

    先搞一个panel,然后里面放label.

  4. [转载]淘宝API调用 申请 获取session key

    http://www.cnblogs.com/zknu/archive/2013/06/14/3135527.html 在调用淘宝的API时,我们都会用到appkey,appsecret,appses ...

  5. Consumer Client Re-Design (翻译)

    注:0.9版本Kafka的一个重大改变就是consumer和producer API的重新设计. 这篇Kafka的文档大致介绍了对于consumer API重新设计时想要实现的功能.0.9版本的确实现 ...

  6. C++ char*,const char*,string,int 的相互转换

    C++ char*,const char*,string,int 的相互转换   1. string转const char* string s ="abc";const char* ...

  7. Namespace, string, vector and array

    1. Headers should not include using declaration Code inside headers ordinarily should not include us ...

  8. C# Log4Net配置

    Log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件.数据库.EventLog等),日志就是程序的黑匣子,可以通过日志查看系统的运行过程,从而发现系统的问题.日志的作用:将运 ...

  9. POJ 3070 Fibonacci(矩阵快速幂)

    题目链接 题意 : 用矩阵相乘求斐波那契数的后四位. 思路 :基本上纯矩阵快速幂. #include <iostream> #include <cstring> #includ ...

  10. ios APP屏幕快照尺寸

    苹果上传APP审核需要上传APP屏幕快照,分别有3.5寸,4寸,4.7寸,5.5寸,ipad五种图片,对应尺寸大小: 3.5寸:横坚屏 640*960 或960*640 4寸:横坚屏 640*1036 ...