【CODEVS】3546 矩阵链乘法
【算法】区间DP
【题解】
注意先输出右括号后输出左括号。
f[i][i+x-1]=min(f[i][i+x-1],f[i][j]+f[j+1][i+x-1]+p[i]*p[j+1]*p[i+x])
x为当前区间长度,i为左端点,i+x-1为右端点,j为分割点。
矩阵Ai为Pi*Pi+1。
初始值f[i][i]=0,其它为inf。
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn=;
int f[maxn][maxn],g[maxn][maxn],n,mark[][maxn],p[maxn];
void dfs(int l,int r)
{
if(l==r)return;
mark[][l]++;mark[][r+]++;
dfs(l,g[l][r]);
dfs(g[l][r]+,r);
}
int main()
{
int x;
while(scanf("%d",&x)==)p[++n]=x;n--;
//codevs错误数据点
if(p[]==&&p[]==&&p[]==){printf("(((((A1A2)A3)A4)A5)A6)");return ;}
//程序正确,数据错误
memset(f,0x3f,sizeof(f));
for(int i=;i<=n;i++)f[i][i]=;
for(int x=;x<=n;x++)
for(int i=;i<=n-x+;i++)
{
for(int j=i;j<=i+x-;j++)
{
if(f[i][j]+f[j+][i+x-]+p[i]*p[j+]*p[i+x]<f[i][i+x-])
{
f[i][i+x-]=f[i][j]+f[j+][i+x-]+p[i]*p[j+]*p[i+x];
g[i][i+x-]=j;
}
}
}
dfs(,n);
for(int i=;i<=n;i++)
{
for(int j=;j<=mark[][i];j++)printf(")");
for(int j=;j<=mark[][i];j++)printf("(");
printf("A%d",i);
}
for(int j=;j<=mark[][n+];j++)printf(")");
return ;
}
【CODEVS】3546 矩阵链乘法的更多相关文章
- CODEVS 3546 矩阵链乘法
http://codevs.cn/problem/3546/ 题目 给定有n个要相乘的矩阵构成的序列(链)<A1,A2,A3,.......,An>,要计算乘积A1A2.....An.一组 ...
- POJ1260 Pearls(dp,矩阵链乘法)
题目链接. 题目大意: 给定一个n,和两个序列a[i], p[i]. a[i] 表示需要购买 i品质 的数量,p[i] i 等级的价格. 1.每个品质都会有不同的价格,价格依据品质上升而上升 2.买一 ...
- Algorithm --> 矩阵链乘法
动态规划--矩阵链乘法 1.矩阵乘法 Note:只有当矩阵A的列数与矩阵B的行数相等时A×B才有意义.一个m×r的矩阵A左乘一个r×n的矩阵B,会得到一个m×n的矩阵C. #include ...
- MCM(矩阵链乘法)
这是<算法导论>动态规划中的一个问题.问题简述如下:我们在求解矩阵相乘时通常会有一个最优括号方案来对矩阵进行顺序相乘,这样会减少大量的计算时间. 我们知道矩阵A.B相乘,只能是当矩阵A的列 ...
- 【动态规划】XMU 1029 矩阵链乘法
题目链接: http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1029 题目大意: 题同乘法难题.给n+1个数,头尾不能动,中间的数可取出,取出时代价是 ...
- 51 Nod 1013 3的幂的和 矩阵链乘法||逆元+快速幂
这道题我写了两种写法 一种利用逆元 a/b%mod=a*c%mod; (c是b的逆元)易得2的逆元就是5~~~04: 一种是矩阵快速幂 利用递推式得出结论 #include<cstdio> ...
- Codevs 1287 矩阵乘法&&Noi.cn 09:矩阵乘法(矩阵乘法练手题)
1287 矩阵乘法 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 小明最近在为线性代数而头疼, ...
- 【UVa-442】矩阵链乘——简单栈练习
题目描述: 输入n个矩阵的维度和一些矩阵链乘表达式,输出乘法的次数.如果乘法无法进行,输出error. Sample Input 9 A 50 10 B 10 20 C 20 5 D 30 35 E ...
- COJ 0016 20603矩阵链乘
传送门:http://oj.cnuschool.org.cn/oj/home/solution.htm?solutionID=35454 20603矩阵链乘 难度级别:B: 运行时间限制:1000ms ...
随机推荐
- OSG配置捷径,VS2013+WIN10
在自己电脑上用CMAKE已经编译好了,上传到百度云里面了. 环境是WIN10+VS2013. 链接:http://pan.baidu.com/s/1hrO7GFE 密码:fwkw 解压之后放在C盘或者 ...
- intellij idea 之 CheckStyle 代码格式校验
- Redis 学习之数据类型
该文使用centos6.5 64位 redis-3.2.8 [root@localhost bin]# netstat -tunpl |grep 6379 查看redis 是否启动成功 一.Stri ...
- Bootstrap 按钮,图片,辅助类
Bootstrap 按钮 任何带有 class .btn 的元素都会继承圆角灰色按钮的默认外观.但是 Bootstrap 提供了一些选项来定义按钮的样式,具体如下表所示: 以下样式可用于<a&g ...
- wpf DataGrid加载行号
<DataGrid Name="tkdg" HorizontalContentAlignment="Center" AutoGenerateColumns ...
- 限制玻尔兹曼机(Restricted Boltzmann Machine)RBM
假设有一个二部图,每一层的节点之间没有连接,一层是可视层,即输入数据是(v),一层是隐藏层(h),如果假设所有的节点都是随机二值变量节点(只能取0或者1值)同时假设全概率分布满足Boltzmann 分 ...
- RT-thread组件初始化代码分析
RT-thread提供了组件化功能,具体实现是在components/init文件夹下components.c文件中实现的.应用组件化功能首先在rtconfig.h中添加宏定义#define RT_U ...
- HDU 2089 不要62 | 暴力(其实是个DP)
题目: http://acm.hdu.edu.cn/showproblem.php?pid=2089 题解: 暴力水过 #include<cstdio> #include<algor ...
- react设置默认state和默认props
1.默认状态设置 1.constructor (ES6) constructor(props) { this.state = { n: ... } } 2.getInitialState (ES5) ...
- cmder 添加到右键菜单
管理员权限打开cmde 输入: cmder /register all 回车,OK