poj1651 矩阵相乘DP

POJ1651 题目:http://poj.org/problem?id=1651 是n个数相乘,每次从中抽取一个数出来与相邻两个数相乘,直到抽到只剩两个数字,第一个数和最后一个数不能抽。 遇到这题又犯迷糊了,知道应该用DP做,就是不知道怎么方程,和矩阵链相似又不相似,后面又看了一下矩阵链,才发现其实题目原型就是一个矩阵链。序列就是相当于N个矩阵相乘,求乘法次数最少,直接按算法导论上写就行了。 AC代码: 阅读详情

我抄袭了discuss上,某牛的话

 

对于整个牌的序列,最左端和最右端的牌是不能被取走的,除这两张以外的所有牌
> ,必然有一张最后取走。取走这最后一张牌有一个仅与它本身以及最左端和最右端的
> 牌的值有关的得分,这个分值与其他牌没有任何关系。当这张最后被取走的牌被定
> 下来以后(假设位置为j), 最左端到j之间的所有牌被取走时所造成的得分必然只与
> 这之间的牌有关从而与j到最右端之间的牌独立开来。这样就构成了两个独立的子
> 区间,出现重叠子问题。于是问题的解就是
>                取走最后一张牌的得分+两个子区间上的最小得分
> 不妨假设当前区间为[b, e],在(b,e)之间枚举最后一张被取走的牌,通过最优子问题
> 求出当前区间的最优解:
>         opt[b][e] = min{ opt[b][j]+opt[j][e] + val(b,j,e); };
>                                                 b+1<= j <=e-1
> val(b,j,e)是取走j所造成的得分,即第b,j,e这三张牌的积。
> 空间o(n^2), 时间o(n^3)

 

最后是我丑陋的代码

 

POJ 1651 - Multiplication Puzzle(区间DP,矩阵链乘三种模版详解) 【题意】题目链接http://poj.org/problem?id=1651 给出n(<=100)个数字,每一个数字有一个权值Ai,求从中抽出除了第一个和最后一个以外的中间的数字的最小费用。抽取的顺序不同最后总的费用也不同,每次抽取第i个数字的费用为a[i-1]*a[i]*a[i+1]; 阅读详情

相关推荐

【动态规划】区间DP - 最优矩阵链乘(另附POJ1651Multiplication Puzzle)

最优矩阵链乘(动态规划) 一个n∗mn*mn∗m的矩阵由 nnn 行 mmm 列共 n∗mn*mn∗m 排列而成。两个矩阵A和B可以相乘当且仅当A的列数等于B的行数。一个nm的矩阵乘mp的矩阵,运算量为nmp。 矩阵乘法不满足分配律,但满足结合律。因此A∗B∗CA*B*CA∗B∗C既可以按顺序 (A∗B)∗C(A*B)*C(A∗B)∗C 也可以按 A∗(B∗C)A*(B*C)A∗(B∗C) 来进行。假设A、B、CA、B、CA、B、C 分别是 2∗3、3∗4、4∗52*3、3*4、4*52∗3、3∗4、4∗5

繁凡さん的博客 572

dp最优矩阵相乘poj1651

题目链接#include <stdio.h> #include <iostream> #include <algorithm> using namespace std;const int INF = 1e9; const int maxn = 1000+5; int dp[maxn][maxn],n,p[maxn];int solve(int i,int j){ if(dp[i][j] !=

yxg_123的博客 358

CocosCreator 面试题(十五)Cocos Creator如何内置protobuf JS版本?

接着,它创建了一个 Player 对象,并使用 protobuf.js 提供的 API 对其进行序列化和反序列化操作。其中,name 和 level 是普通的字段,items 是一个 repeated 字段,表示它可以包含多个值。在 Cocos Creator 中使用 protobuf.js,我们需要先加载 .proto 文件,然后使用 protobuf.js 提供的 API 进行序列化和反序列化操作。JSON和XML是文本格式,更易于阅读和调试,而且在对人类友好的接口和数据交换上更为常见和广泛支持。

w风雨无阻w的专栏 2627

POJ 1651:Multiplication Puzzle 矩阵相乘式DP

Multiplication Puzzle Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7118   Accepted: 4385 Description The multiplication puzzle is played with a row of c

196

单片机按键识别篇---单击---双击----长按

  最近做一任务需要使用一个按键实现三种功能,分别是按键单击功能,按键双击功能和按键长按功能,可能之前没有接触过这类按键复用情况,顶多也只是简单识别单击和长按,没有想过双击以上按键功能,也是绞尽脑汁,想了半天,又上网看了些例程,算是对于按键的识别有点小小的了解,感觉这个功能挺实用,在此做个随笔。 一、思路   1.识别长按操作思路:我们使用系统定时器定时,然后让系统每过一段时间去扫描按键I/O...

weixin_30311605的博客 3660

3DMax马克杯制作教程

01 在前视图创建一个【圆柱体】,设置参数,长度为32,高度为82;高度分段12、边数为16;如图所示。 02 点击鼠标右键,把圆柱体转换为可编辑多边形,如图所示。 03 在修改面板中,选择【多边形】层级,在视图中选择所示的面,使用缩放工具稍微缩小一点,如图所示。 04 点击【插入设置】,如图所示。 设置插入数量为2.5mm。 05 点击【挤出设置】,如图所示。 ...

youximoxingEDO的博客 3477

poj 1651 Multiplication Puzzle(区间DP,直接用矩阵相乘的方式也对)

1、http://poj.org/problem?id=1651 2、题目大意: 给出n个数,现在要将这些数一个一个的取出来,但是不能取出两个端点的数字,取出第i个数字(c[i])的代价是 c[i-1]*c[i]*c[i+1] 用矩阵相乘的思想dp[i][j]表示i到j区间取出来的代价 dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]+c[i]*c[k]*c

sdjzping的专栏 819

java实现自动发送微信QQ消息(可发图片)

自动发送微信/QQ/微博等消息 一:功能:实现发送QQ/微信/微博消息,程序控制。 效果演示(实现自动发生QQ微信消息给女友,发微博信息也可以就不演示了) 二:原理讲解:将剪贴板的内容给发送到QQ微信中去,复制粘贴发送。 模拟真实操作进行发送信息。 三:前期准备,软件安装,及初步测试。...

XURUNFA950827的博客 1万+

POJ 1651 Multiplication Puzzle【最优矩阵链乘,DP】

其实就是算法课上的例题,找到oj上的题提交测试一下。 POJ 1651 Multiplication Puzzle 题意可以转换为:给你n-1个矩阵(a0∗a1,a1∗a2,...,an−2∗an−1a_0*a_1, a_1*a_2 ,..., a_{n-2}*a_{n-1}a0​∗a1​,a1​∗a2​,...,an−2​∗an−1​),要将它们全部相乘,求一种加括号的乘法次序,使得矩阵的乘法次数之和最小,也就是动态规划中经典的最优矩阵链乘问题。 设dp[i][j]dp[i][j]dp[i][j]表示第i

nefu_ljw的博客 844

鲁棒优化入门(6)—Matlab+Yalmip两阶段鲁棒优化通用编程指南(上)

Matlab+Yalmip两阶段鲁棒优化通用编程指南(上篇),内容包括: ①.拿到一个复杂的两阶段鲁棒优化问题的分析步骤和方法。 ②.采用Yalmip工具箱中的uncertain函数和鲁棒优化模块求解两阶段鲁棒优化的子问题。 ③.Yalmip工具箱中的鲁棒优化模块和常规的求解思路有什么异同。 ④.使用KKT条件求解两阶段鲁棒优化的子问题,并使用C&CG算法进行迭代求解。

配电网和matlab的博客 1万+

Qt6.10 | Qt Bluetooth 蓝牙

本文介绍了QtBluetooth模块的功能和使用方法,包括蓝牙API概述、构建配置(CMake/qmake)、权限管理、平台支持(Linux/macOS特殊处理)、日志设置及许可信息。重点说明Linux平台的后端选择机制,以及macOS上的依赖限制。最后提及蓝牙聊天示例,展示RFCOMM协议通信的实现。全文提供了蓝牙开发的技术要点和注意事项。

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 399

poj1651矩阵连乘(DP)+路径

矩阵连乘 对于给定的相继n个矩阵{A1,A2, …, An}(其中Ai的维数为pi-1×pi,i=1,2,…,n), 原理: 在i-j之间找到一个轴,分成A,B两部分矩阵相乘 那么dp[i][j]=A的数乘数+B的数乘数+A*B的数乘数 dp[i][j]=0 (i==j) dp[i][j]=min{dp[i][j],dp[i][k]+dp[k+1][j]+p[i-1]*p

星琳之梦的博客 494

冠层分析法提取叶面积指数及其应用

冠层分析法是利用植物冠层空间结构分析LAI的方法。其基本原理是通过相机或扫描仪对植物冠层垂直方向的照片或图像进行获取,再运用图像处理方法实现植被的自动识别和覆盖度计算,以此推算LAI。假设有一块田地,需测量其LAI,首先在田地中央设置一杆高度为3米、朝向田地中心、覆盖角度为50度的相机。利用上述函数,对相机采集到的图像进行处理,即可得到田地的LAI。在Matlab中,读取图片可以使用imread函数,对图片进行预处理可以使用imadjust函数调整灰度,使用imbinarize函数进行二值化处理。

m0_47037246的博客 739

Multiplication Puzzle POJ - 1651 最优矩阵链乘

题目链接    最优矩阵链乘        一个n×m矩阵由n行m列共个数排列而成。两个矩阵A和B可以相乘当且仅当A的列数等于B的行数。一个n×m的矩阵乘以一个m×p的矩阵等于一个的矩阵,运算量为m*n*p。        矩阵乘法不满足分配律,但满足结合律,因此A×B×C既可以按顺序(A×B)×C进行,也可以按A×(B×C)进行。假设A、B、C分别是2×3,3×4和4×5的,则(A×B)×C的...

Nicolas的博客 604

Allegro174版本如何关闭模块复用后铜皮自动从动态变成静态操作指导

在用Allegro进行PCB设计的时候,模块复用是使用的十分频繁的操作,当Allegro升级到了174 S034版本的时候,当使用模块复用的功能的时候,模块内的铜皮会自动动静转换,大部分情况是不需要的。版本如何关闭模块复用后铜皮自动从动态变成静态操作指导。如何关闭这个功能,具体操作如下。

weixin_54787054的博客 1258

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

poj 1651 矩阵连乘

今天终于学会了矩阵连乘~~~

T_T 978

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

poj1651

/* * poj1651.cpp * * Created on: 2010-8-9 * Author: friendy */ //找了一本算法书,看了矩阵连乘 //和这道题木一样 #include #include #include using namespace std; int n, num[120], dp[120][120]; int main() { int i, j, k,r; scanf("%d", &n); for (i =

zhang20072844的专栏 1055

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【DP】poj1651 <矩阵链乘法>

Description The multiplication puzzle is played with a row of cards, each containing a single positive integer. During the move player takes one card out of the row and scores the number of points

Ariesc_jch 473

POJ 1651 Multiplication Puzzle DP 类似矩阵链

对整数序列(a0~an-1)求和,求和规则:不断取ai(0<i<n),和加上ai-1*ai*ai+1,去掉ai,重复以上步骤直到只剩两个数。求最小和。 思路: 类似矩阵链相乘,设dp[i][j]为序列(i,j)之间最小的sum。对序列(i,j),ai和aj最后会留下,所以最后一次求和一定是ai*ak*aj,(i<k<j)。以k为划分,则状态转移方程为dp[i,j]...

weixin_30846599的博客 88

【POJ 1651】【区间DP 矩阵链乘的变形】Multiplication Puzzle【一串数字,除了头尾不能动,每次取个数字,它与左右相邻数字的乘积为其价值,求价值和最小】

传送门:POJ 1651 描述: Multiplication Puzzle Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8754   Accepted: 5479 Description The multiplication puzzle is

魔笛手的博客 674

POJ1651 Multiplication Puzzle(DP矩阵链)

Multiplication Puzzle Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9500 Accepted: 5906 DescriptionThe multiplication puzzle is played with a row of cards, each containing a si

373

POJ1651:Multiplication Puzzle(区间DP 最优矩阵链乘)

题意:除了头尾不能动,每次取出一个数字,这个数字与左右相邻数字的乘积为其价值,最后将所有价值加起来,要求最小值 和最优矩阵链乘模型一样,最后取出的数决定了序,如果没学过最优矩阵连乘找重复子问题还是比较难找的 DP //180K 0MS #include #include #include #include using namespace std; int dp[110][110];

kalilili的专栏 983

最优矩阵链乘(动态规划dp)POJ 1651 Multiplication Puzzle

大体题意: 一个n*m的矩阵由n行m列共n*m排列而成。两个矩阵A和B可以相乘当且仅当A的列数等于B的行数。一个n*m的矩阵乘m*p的矩阵,运算量为n*m*p。 矩阵乘法不满足分配律,但满足结合律。因此A*B*C既可以按顺序(A*B)*C也可以按A*(B*C)来进行。假设A、B、C分别是2*3、3*4、4*5的,则(A*B)*C运算量是2*3*4+2*4*5=64,A*(B*C)的运算

aozil_yang的博客 1771

POJ 1651 Multiplication Puzzle

Multiplication Puzzle Time Limit:1000MS Memory Limit:65536K Total Submissions:14633 Accepted:8989 Description The multiplication puzzle is played with a row of cards, each co...

~ 415
上一篇: poj1617 字符串模拟
下一篇: 视线语音鼠标 7 人脸检测-形态学运算
琴空
博客等级 码龄16年 48粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值