POJ 1651 Multiplication Puzzle(区间dp)

基于局部基本变量的LP问题矩阵算法 基于部分基变量提出了LP问题的矩阵算法。该算法以最优基矩阵的一个充分必要条件为基础,首先将一个初始矩阵转化为右端项和检验数均满足要求的矩阵,再转化为检验数满足要求的基矩阵,最后转化为最优基矩阵。该算法具有使用范围广,计算规模小,计算过程简化,计算机能够实现的优势。算法的求逆问题,讨论并给出了求逆快速算法,该算法充分利用了矩阵算法分解过程中提供的原来的逆矩阵的信息经过简单的变换得到新的逆矩阵,该算法比直接求逆法计算效率更高。 立即下载

Language:
Multiplication Puzzle
Time Limit: 1000MS Memory Limit: 65536K
Total Submissions: 6693 Accepted: 4083

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 equal to the product of the number on the card taken and the numbers on the cards on the left and on the right of it. It is not allowed to take out the first and the last card in the row. After the final move, only two cards are left in the row. 

The goal is to take cards in such order as to minimize the total number of scored points. 

For example, if cards in the row contain numbers 10 1 50 20 5, player might take a card with 1, then 20 and 50, scoring 
10*1*50 + 50*20*5 + 10*50*5 = 500+5000+2500 = 8000

If he would take the cards in the opposite order, i.e. 50, then 20, then 1, the score would be 
1*50*20 + 1*20*5 + 10*1*5 = 1000+100+50 = 1150.

Input

The first line of the input contains the number of cards N (3 <= N <= 100). The second line contains N integers in the range from 1 to 100, separated by spaces.

Output

Output must contain a single integer - the minimal score.

Sample Input

6
10 1 50 50 20 5

Sample Output

3650

Source

Northeastern Europe 2001, Far-Eastern Subregion


题意


是n个数相乘,每次从中抽取一个数出来与相邻两个数相乘,直到抽到只剩两个数字,第一个数和最后一个数不能抽。


dp[i][j] 表示以 i  j,结尾的抽法的最小值


#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;

#define INF 0x3f3f3f3f

#define N 105

int dp[N][N],n,a[N];

int main()
{
	int i,j;
	while(~scanf("%d",&n))
	{
		for(i=0;i<n;i++)
			scanf("%d",&a[i]);

		memset(dp,0,sizeof(dp));

		for(i=0;i<n-2;i++)
			dp[i][i+2]=a[i]*a[i+1]*a[i+2];

		for(i=n-3;i>=0;i--)
			for(j=i+2;j<n;j++)
			{
			   dp[i][j]=dp[i+1][j]+a[i]*a[i+1]*a[j];
			   for(int k=i+1;k<j;k++)
					dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]+a[i]*a[k]*a[j]);
			}

		printf("%d\n",dp[0][n-1]);
	}
	return 0;
}





【实战解析】RTL8306MB交换芯片驱动开发中的RMII接口调试陷阱 本文通过一个RTL8306MB交换芯片驱动开发的实战案例,深入剖析了RMII接口调试中的经典陷阱。文章详细描述了因TX_EN与CRS_DV信号线交叉连接错误导致的“静默”故障,并分享了使用逻辑分析仪和示波器进行硬件排查的完整流程与核心技巧,为嵌入式网络驱动开发提供了宝贵的避坑指南。 阅读详情

相关推荐

iOS逆向实战:绕过SSL Pinning抓取ChatGPT设备令牌

在移动应用安全与网络协议分析领域,中间人攻击是一种核心的流量拦截与分析技术。其原理是在客户端与服务器之间插入一个代理节点,通过伪造数字证书来解密和窥探HTTPS加密流量。这项技术的工程价值在于,它使开发者能够调试API、分析通信协议以及实现自动化集成。然而,许多高安全要求的应用(如金融、社交类App)会采用SSL Pinning(证书绑定)技术来抵御此类攻击,这为逆向工程带来了挑战。本文聚焦于一个具体的应用场景:如何针对启用了SSL Pinning的ChatGPT iOS客户端,通过特定的工具链(如Trol

weixin_28235889的博客 974

最优化——基本性质

最优化——基本性质标准形式最优极点最优基本可行解 标准形式 min⁡cxs.t.Ax=bx≥0 \begin{aligned} \min \quad &amp;amp;amp;amp;\bf{cx} \\ s.t. \quad &amp;amp;amp;amp;\bf{Ax}=\bf{b}\\ &amp;amp;amp;amp;x\ge0 \end{aligned}mins.t.​cx...

qq_41769289的博客 515

iStore增强插件 如何重塑家庭网络与存储体验

本文深入解析了iStore增强插件如何重塑家庭数字生活体验。它通过集成智能流控、一键式文件共享、媒体服务器及智能家居网关等功能,将复杂的网络配置、存储管理与设备协同简化为图形化操作,有效解决了家庭网络卡顿、数据割裂与使用门槛高等核心痛点,让普通用户也能轻松打造高效、稳定、安全的家庭数字中枢。

prometheus9mon的博客 646

【最优化理论】线性规划

【最优化理论】线性规划

星辰不问 2060

Vue3 + MQTT.js 实现 SCADA 实时数据通信:从不稳定到稳定的完整实践

本文介绍了SCADA组态引擎开发中MQTT协议的应用及优化实践。项目采用MQTT协议实现工业设备数据采集与可视化,但面临连接不稳定、数据格式多样化和数据绑定复杂三大问题。针对MQTT连接问题,分析发现超时设置过短(原8秒)、缺少客户端超时配置和心跳机制是主要原因。优化方案包括:协议转换(mqtt://→ws://)、双重超时保护(15秒手动+30秒客户端)、60秒心跳间隔等,显著提升了连接稳定性。通过完整代码实现展示了连接配置、认证处理和错误处理机制,为物联网数据传输提供了可靠解决方案。

weixin_36794508的博客 1398

2025年VSCode AI插件实战:如何用Devika+Continue+Tabby三件套10倍提升开发效率

本文详细介绍了2025年VSCode AI插件Devika、Continue和Tabby的三件套组合,如何通过智能开发工作流10倍提升开发效率。从项目架构生成到上下文感知辅助,再到本地化智能编码,这套方案实现了从需求分析到代码生成的全流程自动化,特别适合中大型项目开发。

weixin_26911099的博客 269

浅谈线性规划:No.2 单纯形法及matlab代码实现

针对线性回归的单纯形法与matlab实现,本文将从概念定理出发,并介绍其基本思路,进行具体求解过程的整理。最后本文也会给出线性规划matlab具体的代码实现。

oxacyclopropane的博客 3617

dbt+Snowflake实战:数据建模、权限隔离与性能优化全指南

dbt(data build tool)作为现代数据栈的核心建模工具,其与Snowflake的深度协同远不止于SQL编译执行——它本质是将软件工程实践(如版本控制、测试驱动、CI/CD)注入数据交付流程。理解dbt的声明式建模原理与Snowflake的虚拟仓库、Time Travel、TRANSIENT表、聚簇键等底层机制如何咬合,是实现可维护、可审计、低成本数据产品交付的关键。本文聚焦dbt在Snowflake环境中的真实落地挑战,涵盖schema与warehouse的物理映射设计、role级硬隔离策略、

weixin_34389926的博客 312

poj 1651 区间dp+矩阵连乘DP

http://poj.org/problem?id=1651 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 ro

ACM,再见! 909

华为OD机试真题 新系统 9月16号 【园区基站节能部署规划】

华为OD机试真题 新系统【园区基站节能部署规划】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【园区基站节能部署规划】多语言题解。

qq_45776114的博客 351

ZYNQ PS-PL数据交互方式总结

一,中断 二,IO方式:MIO EMIO GPIO 三,BRAM或FIFO或EMIF (1)通过BRAM实现PL/PS之间交互 PS 的配置如下图所示。使能 M_AXI_GP0 口,将 FCLK_CLK0 设为 100MHz,使能 PL 至 PS 的中断。 AXI BRAM Controller IP 核连接 PS 的 M_AXI_GP0 口和 BRAM,完成 AXI 接口至 BRAM 接口的转换。 添加BRAM,将BRAM设置为双口RAM,将PORTA与AXI B...

wangjie36的博客 1万+

POJ 1651 Multiplication Puzzle

区间DP板子题

EQUINOX1的博客 1120

OpenCASCADE完整教程专栏完整目录

OpenCASCADE完整教程专栏完整目录

希望我的博客,能帮上你解决学习中工作中所遇到的问题 9695

Multiplication Puzzle(POJ - 1651)(动态规划-区间dp)

Multiplication Puzzle(POJ - 1651)(动态规划-区间dp) judge:POJ 1651 Time Limit: 1000MS Memory Limit: 65536K source:Northeastern Europe 2001, Far-Eastern Subregion Description The multiplication puzzle is pl...

画船听雨眠 421

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

POJ1651 Multiplication Puzzle 【区间DP】

题目链接:POJ-1651 kuangbin带你飞【专题二十二】 区间DP 题目描述: 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 a...

Hang_ccccc的博客 319

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

DP - 区间DP - Multiplication Puzzle - POJ - 1651

DP - 区间DP - Multiplication Puzzle - POJ - 1651 题意: 给定一个长度为n的序列w,可以去除一个数wi,i∈[2,n−1],代价为wi−1×wi×wi+1。给定一个长度为n的序列w,可以去除一个数w_i,i∈[2,n-1],代价为w_{i-1}×w_i×w_{i+1}。给定一个长度为n的序列w,可以去除一个数wi​,i∈[2,n−1],代价为wi−1​×...

njuptACMcxk的博客 204

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

poj-1651-Multiplication Puzzle--区间DP

poj-1651-Multiplication Puzzle--区间DP Multiplication Puzzle Time Limit:1000MS Memory Limit:65536K Total Submissions:10734 Accepted:6704 Description The m...

weixin_30430169的博客 123

POJ1651:Multiplication Puzzle(区间DP) -ACM

POJ - 1651 Multiplication Puzzle(区间DP) Time Limit:1000MS Memory Limit:65536K Total Submissions:14252 Accepted:...

BIG SHARK的博客 221

【区间dp】poj 1651 Multiplication Puzzle

题意:区间[1,n]每次从中抽出一张牌,直到只剩下最外面两张牌。 每次抽牌的得分是被抽到的牌左边所有牌的乘积*被抽到的牌*右边所有牌的乘积,问得分之和最小是多少? 思路:当区间只有三个数a1,a2,a3的时候得分是a1*a2*a3 设ak为最后一次取出来的数,那么最后一次得分只与a1,ak,an有关,把整个区间以k分为两半,那么 dp[1][n]=dp[1][k]+dp[k][n]+a[1]...

iroy33的博客 319

POJ 1651 Multiplication Puzzle【区间dp】

Multiplication Puzzle  POJ - 1651  思路:求出每个区间的最小值,一直扩散到整个区间  设dp[l][r]表示区间[l,r]的最优解,则状态转移如下:  1、当r-l=2时,dp[l][r] = num[l]*num[l+1]*num[r]; 2、当r-l>2时,对区间的最后一

Puya的博客 417

POJ 1651 Multiplication Puzzle(区间dp)

题目链接: POJ 1651 Multiplication Puzzle 题意: 给出nn个数,每次可以选择从中取走一个数,取走的代价是它左右以及自身三个数的乘积,不允许取走首末两个数字,求将中间n−2n-2个数字都取走的最小代价和? 数据范围:n≤100,每个数字∈[1,100]n\leq 100,每个数字\in [1,100] 分析; 比较简单的区间dp. 用dp[i][j]dp[

ramay7 431

POJ 1651 Multiplication Puzzle 区间DP

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

J. Cole 433

POJ 1651 Multiplication Puzzle 题解 区间DP

题目链接:http://poj.org/problem?id=1651【题目描述】《乘法谜题》乘法谜题源自这样一个背景,我们有一行 n 张牌,平铺在桌面上,每张牌的牌面上都标有一个正整数。玩家的初始得分是 0,他接下来要进行 n-2 次操作,每次操作他都需要从桌面上取出一张牌,然后他的得分会加上他取出的这张牌与取出的这张牌的左边的牌以及取出的这张牌的右边的牌的乘积。在第 n-2 次操作结束后,桌面...

weixin_30426957的博客 140

POJ-1651 Multiplication Puzzle 区间DP

题目链接:https://vjudge.net/problem/POJ-1651 题意: 题目的意思是给定一个数列,每次取出其中一个数字,价值增加这个数字与其左右两个数字的乘积,直到最后只剩两个数字,求价值的最小值。 分析: 首先这种一步步求最优解的问题,可以想到会不会是贪心问题?假设贪心可以解决,那么可以想到的策略就是每一步取使得增加价值最小的数字。但是事实是这种策略不是总正确...

weixin_30888707的博客 235

POJ 1651:Multiplication Puzzle 区间DP

Multiplication Puzzle 题目链接: http://poj.org/problem?id=1651 题意: 给出n个数字,从中取出n-2个,每取出一个,分数就会加上该数字和相邻两个数字的乘积(不能取左右两端的数字),求分数和最小值。 题解: 设dp[i][j]为区间[i,j]内取出j-i-1个数字的最小分数和,可以知道此时 i 和 j 为区间...

weixin_30530939的博客 164

POJ 1651 Multiplication Puzzle 区间DP

题意: 给定一串数字,求拿走中间的全部数字,使得代价最小。拿走一个其中数字的代价为这个数字和它左右的乘积。 解法: 考虑常规区间DP的写法,枚举区间长度,枚举起点,枚举分割点(这里的分割点是一段区间中最后拿走的数字是哪一个!可能是这个题的唯一需要考虑的点) 设dp[i][j]表示那走i到j的全部数字最小花费,a[i]表示位置i的数字。 dp[i][j]=min(dp[i]...

weixin_30892037的博客 210
上一篇: poj 1141 Brackets Sequence(区间dp)
下一篇: POJ 3661 Running(区间dp)
左眼皮跳跳~
博客等级 码龄13年 17粉丝 400原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值