POJ 1651:Multiplication Puzzle(区间DP)
http://poj.org/problem?id=1651
题意:给出n个数字,每取中间一个数,就会使得权值加上中间这个数和两边的乘积,求取剩两个数最少的权值是多少。
思路:区间dp。
一开始想了挺久还是写不出方程,做了点别的事回来再想就突然觉得很简单了。
一开始使得长度为1和2的区间dp[i][j]为0.
然后dp[i][j] = min(dp[i][k] + dp[k][j] + w[k] * w[i] * w[j])。
枚举的k为中间拿掉的数,然后和左右的区间和相加就是最后答案了。
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define N 105
typedef long long LL;
LL dp[N][N], w[N]; int main() {
int n;
while(~scanf("%d", &n)) {
memset(dp, 0x3f3f3f3f, sizeof(dp));
for(int i = ; i <= n; i++) scanf("%lld", &w[i]);
for(int i = ; i <= n; i++) dp[i][i] = dp[i][i+] = ;
//for(int i = 2; i < n; i++) dp[i][i] = w[i-1] * w[i] * w[i+1];
for(int len = ; len < n; len++) {
for(int i = ; i + len <= n; i++) {
int j = i + len;
for(int k = i + ; k < j; k++)
dp[i][j] = min(dp[i][j], dp[i][k] + dp[k][j] + w[i] * w[j] * w[k]);
}
}
printf("%lld\n", dp[][n]);
}
return ;
}
POJ 1651:Multiplication Puzzle(区间DP)的更多相关文章
- poj 1651 Multiplication Puzzle (区间dp)
题目链接:http://poj.org/problem?id=1651 Description The multiplication puzzle is played with a row of ca ...
- POJ 1651 Multiplication Puzzle 区间dp(水
题目链接:id=1651">点击打开链 题意: 给定一个数组,每次能够选择内部的一个数 i 消除,获得的价值就是 a[i-1] * a[i] * a[i+1] 问最小价值 思路: dp ...
- POJ 1651 Multiplication Puzzle(类似矩阵连乘 区间dp)
传送门:http://poj.org/problem?id=1651 Multiplication Puzzle Time Limit: 1000MS Memory Limit: 65536K T ...
- POJ 1651 Multiplication Puzzle (区间DP)
Description The multiplication puzzle is played with a row of cards, each containing a single positi ...
- Poj 1651 Multiplication Puzzle(区间dp)
Multiplication Puzzle Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10010 Accepted: ...
- POJ 1651 Multiplication Puzzle (区间DP,经典)
题意: 给出一个序列,共n个正整数,要求将区间[2,n-1]全部删去,只剩下a[1]和a[n],也就是一共需要删除n-2个数字,但是每次只能删除一个数字,且会获得该数字与其旁边两个数字的积的分数,问最 ...
- POJ1651:Multiplication Puzzle(区间DP)
Description The multiplication puzzle is played with a row of cards, each containing a single positi ...
- poj 1651 Multiplication Puzzle【区间DP】
题目链接:http://poj.org/problem? id=1651 题意:初使ans=0,每次消去一个值,位置在pos(pos!=1 && pos !=n) 同一时候ans+=a ...
- poj 1651 Multiplication Puzzle
题目链接:http://poj.org/problem?id=1651 思路:除了头尾两个数不能取之外,要求把所有的数取完,每取一个数都要花费这个数与相邻两个数乘积的代价,需要这个代价是最小的 用dp ...
- POJ 1651 Mulitiplication Puzzle
The multiplication puzzle is played with a row of cards, each containing a single positive integer. ...
随机推荐
- windows添加本地文件托管到新增github库
新增repositoy.登录gitHub,并点击“New Reposoitory” 写入名字 之后点击“create resposity” \ 按照上图中的步骤可以完成.以下为完成步骤. 2. 在本 ...
- 所有语言的Awesome(2)
Curated list of awesome lists https://awesomeweekly.co https://github.com/sindresorhus/awesome ✨ Pre ...
- wcf中的消息模式
1请求响应模式 a.wcf中的消息模式默认是请求响应模式 b.返回值是void默认也是请求响应模式,可返回服务端的错误信息 c.客户端在请求后,当前线程停止真到接受收服务器的响应 [Opereatio ...
- WPF,通过修改dataGrid的cell的style,改变选中行失去焦点时的颜色 4.0可用
<Style TargetType="{x:Type DataGridCell}"> <Style.Triggers> <Trigger Proper ...
- 使用ArcGIS Server发布我们的数据
原文:使用ArcGIS Server发布我们的数据 引言 上一篇我们已经安装好了ArcGIS体系的服务软件,这一篇将介绍如何把我们自己的数据通过ArcGIS Server发布出去,并且能够通过Web页 ...
- C#通过HttpListener实现HTTP监听
代码: using NLog; using System; using System.Diagnostics; using System.IO; using System.Net; using Sys ...
- Uncaught (in promise)
Uncaught (in promise) 使用es6的promise时候,有时候会出现如下错误: 这是因为,使用定义promise方法的时候,reject了,但是,在使用的地方没有用catch进行接 ...
- 用Golang让自己的电脑自动登录“上网管理”系统
用Golang让自己的电脑自动登录 1.缘起 大天朝的网络一般都是只对某些人开放的.上行下效,同样的措施也作用在我们的教育网上.我想不出来,为什么很多领导的总有这样的恶趣味(如果做的到,他们恨不得监控 ...
- 说说IEnumerable和yield
IEnumerable数据类型是我比较喜欢的数据类型,特别是其强类型IEnumerable<T>更获得Linq的支持使得代码看起来更加优雅.整洁. 编写返回值为IEnumerable(或I ...
- sso和oauth2.0的简单了解学习
sso,单点登录,single sign on 缩写.sso多用于多个应用之间的切换,例如百度论坛.百度知道.百度云.百度文库等,在其中一个系统中登录,(登录有效期内)切换到另一个系统的时候,不必再次 ...