题目链接:http://www.51mxd.cn/problem.php-pid=737.htm

题目大意:给出n个石子堆以及这n个石子堆中石子数目,每次操作合并两个相邻的石子堆,代价为两个石子堆数目之和,求最后合成一个石子堆时所花费的最小代价。

解题思路:典型的区间dp

 #include<stdio.h>
#include<string.h>
#include<algorithm>
#define mem(a, b) memset(a, b, sizeof(a))
const int MAXN = ;
const int inf = 0x3f3f3f3f;
using namespace std; int arr[MAXN], sum[MAXN];
int dp[MAXN][MAXN]; //表示i ~ j区间内的最小代价 int main()
{
int n;
while(scanf("%d", &n) != EOF)
{
mem(dp, ), mem(sum, );
for(int i = ; i <= n; i ++)
{
scanf("%d", &arr[i]);
sum[i] += sum[i - ] + arr[i];
}
for(int len = ; len <= n; len ++) //枚举长度
{
for(int i = ; i + len - <= n; i ++) // 枚举区间起点
{
int j = i + len - ; //区间终点
dp[i][j] = inf;
for(int k = i; k < j; k ++)
{
dp[i][j] = min(dp[i][j], dp[i][k] + dp[k + ][j] + sum[j] - sum[i - ]);
}
}
}
printf("%d\n", dp[][n]);
}
return ;
}

题目链接:https://ac.nowcoder.com/acm/contest/1089/J

题目大意:给出一个环形项链,每次操作合成两个相邻的宝珠,代价为两个宝珠首,中间,尾乘积,求最后合成一个宝珠时所花费的最小代价。

解题思路:

1.区间dp,破环成链,数组开2倍。

 #include<stdio.h>
#define LL long long
#include<math.h>
#include<algorithm>
using namespace std;
const int MAXN = ; int a[MAXN];
LL dp[MAXN][MAXN]; int main()
{
int n;
scanf("%d", &n);
for(int i = ; i <= n; i ++)
{
scanf("%d", &a[i]);
a[i + n] = a[i];
}
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] = max(dp[i][j], dp[i][k] + dp[k + ][j] + a[i] * a[k + ] * a[j + ]);
}
}
}
LL ans = -;
for(int i = ; i <= n; i ++)
ans = max(ans, dp[i][i + n - ]);
printf("%lld\n", ans);
return ;
}

石子合并/能量项链【区间dp】的更多相关文章

  1. 1154 能量项链[区间dp]

    1154 能量项链 2006年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 在Ma ...

  2. P1063 能量项链 区间dp

    题目描述 在MarsMars星球上,每个MarsMars人都随身佩带着一串能量项链.在项链上有NN颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且,对于相邻的两颗珠子,前一 ...

  3. tyvj 1056 能量项链 区间dp (很神)

    P1056 能量项链 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 NOIP2006 提高组 第一道 描述     在Mars星球上,每个Mars人都随身佩 ...

  4. 洛谷P1063能量项链(区间dp)

    题目描述: 给定一串序列x[],其中的每一个Xi看作看作一颗珠子,每个珠子包含两个参数,head和tail,前一颗的tail值是后一个的head值,珠子呈现环形(是一条项链),所以最后一颗的tail是 ...

  5. 能量项链(区间DP入门)

    题面:能量项链https://www.luogu.com.cn/problem/P1063 乍一看和石子合并差不多,可是多了头值和尾值,看起来十分麻烦 我们画一张图,紫色表示头值,蓝色表示尾值.规定西 ...

  6. tyvj 1056 能量项链 区间dp

    P1056 能量项链 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 NOIP2006 提高组 第一道 描述     在Mars星球上,每个Mars人都随身佩 ...

  7. 能量项链//区间DP

    P1056 能量项链 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 NOIP2006 提高组 第一道 描述     在Mars星球上,每个Mars人都随身佩 ...

  8. P1880 [NOI1995]石子合并-(环形区间dp)

    https://www.luogu.org/problemnew/show/P1880 解题过程:本次的题目把石子围成一个环,与排成一列的版本有些不一样,可以在后面数组后面再接上n个元素,表示连续n个 ...

  9. NYOJ737石子合并(二)-(区间dp)

    题目描述:     有N堆石子排成一排,每堆石子有一定的数量.现要将N堆石子并成为一堆.合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为这两堆石子的和,经过N-1次合并后成为一堆.求出 ...

随机推荐

  1. com.atomikos.datasource.ResourceException: XA resource 'masterDB': resume for XID异常

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/u014172271/article/det ...

  2. 富文本编辑器从word粘贴公式

    很多时候我们用一些管理系统的时候,发布新闻.公告等文字类信息时,希望能很快的将word里面的内容直接粘贴到富文本编辑器里面,然后发布出来.减少排版复杂的工作量. 下面是借用百度doc 来快速实现这个w ...

  3. java+上传文件夹

    最近在学习百度的开源上传组件WebUploader,写了一些示例以记录.WebUploader的缺点是没有一个比较好的现成的界面,这个界面需要自己去实现.自由度高了一些. WebUploader是由B ...

  4. [USACO17JAN] 晋升者计数 dfs序+树状数组

    [USACO17JAN] 晋升者计数 dfs序+树状数组 题面 洛谷P3605 题意:一棵有点权的树,找出树中所有\((u,v)\)的对数,其中\(u,v\)满足\(val(u)\le val(v)\ ...

  5. _cdecl与_stdcall区别

    _cdecl与_stdcall是最常用的的两种函数调用修饰,区别在于函数返回时,清理栈(恢复栈平衡)是caller做还是被调函数做. : _cdecl int add1(int a, int b) : ...

  6. codeforces392B

    CF392B Tower of Hanoi 题意翻译 河内塔是一个众所周知的数学难题.它由三根杆和一些可以滑动到任何杆上的不同尺寸的圆盘组成.难题从一个整齐的杆中开始,按照尺寸从小到大的顺序排列,最小 ...

  7. Ubuntu 14.04 网卡网关配置修改

    #添加网关route add default gw 192.168.5.1#强制修改网卡地址ifconfig eth0 192.168.5.40 netmask 255.255.255.0. 服务器需 ...

  8. this关键字的用法小结

    1.this :指它所在函数所属对象的引用. 简单说:哪个对象调用this所在的函数,this就指哪个对象. 主要是为了区分:成员变量和局部变量 2.构造函数之间的调用用this关键字,如,this( ...

  9. /proc/sys/net/ipv4/ip_conntrack_max

    Things to know (best practices and “issues”) READ IT !!! — uWSGI 2.0 documentationhttps://uwsgi-docs ...

  10. CentOS7下安装php-redis扩展

    yum -y install php70w-pecl-redis