传送门

•题意

  矩阵 A(n×m) 和矩阵 B(m×k) 相乘,共做 n×m×k 次乘法运算;

  给你 n 个矩阵,求这 n 个矩阵的最优结合方式,使得做的总乘法运算次数最少;

•题解

  定义dp(i,j)表示第[i,...j]个矩阵的最小的乘法运算次数;

  定义d(i,j)表示第[i,...j]个矩阵的最优解从d(i,j)分开,即(Ai×Ai+1×......×Ad(i,j))×(Ad(i,j)+1×......×Aj);

  求解dp(i,j)的时候,求出最优解,并记录是从那个位置分开使得其最优;

  输出时递归输出即可;

•Code

 #include<bits/stdc++.h>
using namespace std;
#define INF 0x3f3f3f3f
const int maxn=; int n;
int p[maxn];
int dp[maxn][maxn];
int d[maxn][maxn]; void DP()
{
for(int len=;len <= n;++len)
{
for(int i=,j=i+len-;j <= n;++i,++j)
{
for(int k=i;k < j;++k)
{
int cur=dp[i][k]+dp[k+][j]+p[i-]*p[k]*p[j];
if(dp[i][j] > cur)
{
d[i][j]=k;
dp[i][j]=cur;
}
}
}
}
}
void Print(int l,int r)
{
if(l == r)
{
printf("A%d",l);
return ;
}
if(l > r)
return ; printf("(");
Print(l,d[l][r]);///[l,r]在d[l][r]处分割
printf(" x ");
Print(d[l][r]+,r);
printf(")");
}
void Solve()
{
for(int i=;i <= n;++i)
for(int j=;j <= n;++j)
dp[i][j]=(i == j ? :INF);
DP();
Print(,n);
printf("\n");
}
int main()
{
int kase=;
while(~scanf("%d",&n) && n)
{
for(int i=;i <= n;++i)///第i个矩阵的行和列为p[i-1],p[i]
{
int a,b;
scanf("%d%d",&a,&b);
p[i-]=a;
p[i]=b;
}
printf("Case %d: ",kase++);
Solve();
}
return ;
}

ZOJ 1276 "Optimal Array Multiplication Sequence"(最优矩阵链乘问题+区间DP)的更多相关文章

  1. 矩阵连乘积 ZOJ 1276 Optimal Array Multiplication Sequence

    题目传送门 /* 题意:加上适当的括号,改变计算顺序使得总的计算次数最少 矩阵连乘积问题,DP解决:状态转移方程: dp[i][j] = min (dp[i][k] + dp[k+1][j] + p[ ...

  2. ZOJ 1276 Optimal Array Multiplication Sequence(矩阵连乘)

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1276 裸的矩阵连乘问题. #include<iostream> ...

  3. 最优矩阵连乘问题 区间DP

    最优矩阵连乘积 Accepted: 10 Total Submit: 18Time Limit: 1000ms Memony Limit: 32768KB Description 在科学计算中经常要计 ...

  4. UVAoj 348 - Optimal Array Multiplication Sequence

    /* 题意:矩阵相乘的最少的步数 dp[i][j]=min(dp[i][j], dp[i][k]+dp[k+1][j]+num[i-1]*num[k]*num[j]); 表示的是第i个矩阵到第j个矩阵 ...

  5. UVA - 348Optimal Array Multiplication Sequence(递推)

    id=19208">题目:Optimal Array Multiplication Sequence 题目大意:给出N个矩阵相乘.求这些矩阵相乘乘法次数最少的顺序. 解题思路:矩阵相乘 ...

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

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

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

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

  8. POJ 1141 Brackets Sequence(区间DP, DP打印路径)

    Description We give the following inductive definition of a “regular brackets” sequence: the empty s ...

  9. POJ 1651 区间DP Multiplication Puzzle

    此题可以转化为最优矩阵链乘的形式,d(i, j)表示区间[i, j]所能得到的最小权值. 枚举最后一个拿走的数a[k],状态转移方程为d(i, j) = min{ d(i, k) + d(k, j) ...

随机推荐

  1. Leetcode717.1-bit and 2-bit Characters1比特与2比特字符

    有两种特殊字符.第一种字符可以用一比特0来表示.第二种字符可以用两比特(10 或 11)来表示. 现给一个由若干比特组成的字符串.问最后一个字符是否必定为一个一比特字符.给定的字符串总是由0结束. 示 ...

  2. BMDP为常规的统计分析提供了大量的完备的函数系统,如:方差分析(ANOVA)、回归分析(Regression)、非参数分析(Nonparametric Analysis)、时间序列(Times Series)等等。此外,BMDP特别擅于进行出色的生存分析(Survival Analysis )。许多年来,一大批世界范围内顶级的统计学家都曾今参与过BMDP的开发工作。这不仅使得BMDP的权威性得到

        BMDP是Bio Medical Data Processing的缩写,是世界级的统计工具软件,至今已经有40多年的历史.目前在国际上与SAS.SPSS被并称为三大统计软件包.BMDP是一个大 ...

  3. yum install mysql-devel

    linux系统在装mysql相关的包时要先装mysql-deval,这个包包含mysql的相关配置和环境组件 执行yum install mysql-deval

  4. docker push dial tcp *.*.*.*:443 getsockopt: connection refused

    docker 在提交镜像的时候出现以下错误. 我用的是本地的仓库,所以tcp后面是我的ip地址. 错误信息: #docker push ubuntu docker push  dial tcp 192 ...

  5. win7 powershell版本过低问题

    那台win8系统的笔记本电脑 硬盘坏掉后  在win7系统的台式机上使用 vagrant up 提示版本过低 The version of powershell currently installed ...

  6. 开发者总结的WatchKit App提交技巧

    苹果4月初宣布所有注册开发者已经可以向App Store提交基于WatchKit开发的Apple Watch app了,不过不少开发者遇到了模拟器中没有发现的问题.这篇文章主要收集了一些提交tips和 ...

  7. 直击 KubeCon 2019 现场,阿里云 Hands-on Workshop 亮点回顾

    2019 年 6 月 24 日,KubeCon + CloudNativeCon 第二次在中国举办.此次大会阿里共有 26 个技术演讲入选,并有两场沙龙活动,阿里云专家也与技术极客们也再次相聚.Kub ...

  8. 微信小程序记录

    1.vs code 可以安装 Vetur-wepy 对代码高亮的提示. 2.取消swiper组件的手动滑动效果 在 swiper-item 中添加 catchtouchmove='catchTouch ...

  9. 关于取List中的指定几条数据以及注意事项

    list1 = list2.subList(start, end); start,end分别是第几个到第几个. 注意的是此方法和substring一样,包含前不包含结尾,取下标索引 另一个注意的地方是 ...

  10. react-cli

    更新日志: v1.2.0 ...未完待续 v1.1.0 添加editorconfig 配置ESLint 集成prettier 集成 lint-staged 实现细节: 添加editorconfig e ...