博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 1651 Multiplication Puzzle 区间dp
阅读量:4614 次
发布时间:2019-06-09

本文共 1081 字,大约阅读时间需要 3 分钟。

给一串数, 拿出一个数i的代价是a[i-1]*a[i]*a[i+1], 第一个数和最后一个数不能拿, 求拿走剩下的数的代价的最小值。

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;#define pb(x) push_back(x)#define ll long long#define mk(x, y) make_pair(x, y)#define lson l, m, rt<<1#define mem(a) memset(a, 0, sizeof(a))#define rson m+1, r, rt<<1|1#define mem1(a) memset(a, -1, sizeof(a))#define mem2(a) memset(a, 0x3f, sizeof(a))#define rep(i, a, n) for(int i = a; i
pll;const double PI = acos(-1.0);const double eps = 1e-8;const int mod = 1e9+7;const int inf = 1e7;const int dir[][2] = { {-1, 0}, { 1, 0}, { 0, -1}, { 0, 1} };int dp[105][105], a[105];int dfs(int l, int r) { if(~dp[l][r]) return dp[l][r]; dp[l][r] = inf; if(r-l==1) return dp[l][r] = 0; if(r-l == 2) return dp[l][r] = a[l]*a[l+1]*a[r]; for(int i = l+1; i
>n) { mem1(dp); for(int i = 1; i<=n; i++) scanf("%d", &a[i]); int ans = dfs(1, n); cout<
<

 

转载于:https://www.cnblogs.com/yohaha/p/5072260.html

你可能感兴趣的文章
GTD:让大脑用来思考,而不是用来记事!
查看>>
Spark程序进行单元测试-使用scala
查看>>
Oozie简单配置与使用
查看>>
根目录空间沾满
查看>>
python基础知识13-迭代器与生成器,导入模块
查看>>
Spring 操作Weblogic JDNI数据源
查看>>
bower程序包管理器与npm的对比及handlebars包的使用实例
查看>>
ES6 数值的扩展
查看>>
模块操作
查看>>
数据链路层笔记
查看>>
HTML5开发:原理与实现
查看>>
pip安装问题
查看>>
Mysql 出现Table‘xxx’is read only问题
查看>>
欧几里得&扩展欧几里得算法
查看>>
Block使用的注意事项
查看>>
HDU1700:Points on Cycle
查看>>
8个实用的Linux下Bash命令提示行(转)
查看>>
Python常用模块-shutil高级文件处理模块
查看>>
css hack
查看>>
POJ-1273Drainage Ditches(网络流入门题,最大流)
查看>>