因为刚刚看了区间dp,所以写一下对区间dp的理解。

例题:

石子归并

51Nod - 1021

看了一篇博客,觉得他说得比较容易理解,所以再次重复一遍:

假如你是上帝,已经知道了1~n堆石子的最优解,那么它肯定是由两个子堆组成的,

同理,两个子堆也分别都有自己的两个子堆,到最底层肯定是1~n堆石子的自身,

那我们回到最初,1~n堆石子肯定有一个分割点,

dp[ i ][ j ]代表 i 到 j 堆石子的最优解。dp[ 1 ] [ 5 ]=min{dp[1][1]+dp[2][5]+sum,    dp[1][2]+dp[3][5]+sum,    dp[1][3]+dp[4][5]+sum,    dp[1][4]+dp[5][5]+sum};

就以上这么多种情况,以各个点为分界点,求出最小值(sum是价值,假设长度为1,2,3,4的最优解已经求出来了)

注意的就是dp数组的初始化

#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{
int n,dp[110][110],sum[110];
while(~scanf("%d",&n))
{
memset(dp,0x3f3f3f,sizeof(dp));//注意初始化
sum[0]=0;
for(int i=1;i<=n;i++)
{
scanf("%d",&sum[i]);
sum[i]+=sum[i-1];
dp[i][i]=0;//!!!
}
for(int len=1;len<=n;len++)/*枚举“区间”长度*/
{
for(int i=1;i+len<=n+1;i++)/*枚举起点*/
{
int ends=i+len-1;/*终点*/
for(int j=i;j<ends;j++)/*以j为分割点*/
{
dp[i][ends]=min(dp[i][ends],dp[i][j]+dp[j+1][ends]+sum[ends]-sum[i-1]);
// printf("%d %d %d %d\n",len,i,j,ends); }
}
}
printf("%d\n",dp[1][n]); }
return 0;
}

区间dp暂时的理解的更多相关文章

  1. 区间dp 例题

    D - 石子合并问题--直线版 HRBUST - 1818 这个题目是一个区间dp的入门,写完这个题目对于区间dp有那么一点点的感觉,不过还是不太会. 注意这个区间dp的定义 dp[i][j] 表示的 ...

  2. Uva 10891 经典博弈区间DP

    经典博弈区间DP 题目链接:https://uva.onlinejudge.org/external/108/p10891.pdf 题意: 给定n个数字,A和B可以从这串数字的两端任意选数字,一次只能 ...

  3. 【BZOJ-1068】压缩 区间DP

    1068: [SCOI2007]压缩 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 1001  Solved: 615[Submit][Status][ ...

  4. light oj 1422 Halloween Costumes (区间dp)

    题目链接:http://vjudge.net/contest/141291#problem/D 题意:有n个地方,每个地方要穿一种衣服,衣服可以嵌套穿,一旦脱下的衣服不能再穿,除非穿同样的一件新的,问 ...

  5. 2016"百度之星" - 初赛(Astar Round2A) 1004 D Game 区间DP

    D Game Problem Description   众所周知,度度熊喜欢的字符只有两个:B 和D. 今天,它发明了一个游戏:D游戏. 度度熊的英文并不是很高明,所以这里的D,没什么高深的含义,只 ...

  6. [NYIST737]石子合并(一)(区间dp)

    题目链接:http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=737 很经典的区间dp,发现没有写过题解.最近被hihocoder上几道比赛题难住了 ...

  7. HDU4283:You Are the One(区间DP)

    Problem Description The TV shows such as You Are the One has been very popular. In order to meet the ...

  8. 动态规划——区间dp

    在利用动态规划解决的一些实际问题当中,一类是基于区间上进行的,总的来说,这种区间dp是属于线性dp的一种.但是我们为了更好的分类,这里仍将其单独拿出进行分析讨论. 让我们结合一个题目开始对区间dp的探 ...

  9. hdu4283 You Are the One 区间DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4283 自己想了很久还是不会,参考了别人的思路才写的,区间DP还是很弱,继续努力!! 思路: 转载: 题 ...

随机推荐

  1. PKI详解

    预备: 一.密码基元 二.密钥管理 三.PKI本质是把非对称密钥管理标准化 PKI 是 Public Key Infrastructure 的缩写,其主要功能是绑定证书持有者的身份和相关的密钥对(通过 ...

  2. 扫描神器nmap使用教程

    总结 nmap -v 详细信息输出nmap -p 指定端口nmap -iL 扫描文件中的ipnmap -exclude 不扫描某些ipnmap -Pn 使用ping扫描,显式地关闭端口扫描,用于主机发 ...

  3. Hexo站点Next主题添加google adsense广告

    本文转载自: https://www.93bok.com 前言 无意之间看到了google adsense的广告,于是就想到给我的站点也弄一个,本来以为是很简单的事,参考了很多资料,终于是部署成功了, ...

  4. GZOJ 1361. 国王游戏【NOIP2012提高组DAY1】

    国王游戏[NOIP2012提高组DAY1] Time Limit:1000MS Memory Limit:128000K Description 国王游戏(game.cpp/c/pas) [问题描述] ...

  5. 怎么用一行HTML代码搭建一个谷歌镜像?

    <iframe src="google.com"></iframe>

  6. day06可变与不可变类型,if判断,运算符

    1:可变不可变类型 2.什么是条件?什么可以当做条件?为何要要用条件? 显式布尔值:True.False 隐式布尔值:所有数据类型,其中0.None.空为假 3:逻辑运算符:用来 # not. and ...

  7. 【WPF学习】第五十七章 使用代码创建故事板

    在“[WPF学习]第五十章 故事板”中讨论了如何使用代码创建简单动画,以及如何使用XAML标记构建更复杂的故事板——具有多个动画以及播放控制功能.但有时采用更复杂的故事板例程,并在代码中实现全部复杂功 ...

  8. OpenCV3入门(十三)图像运动模糊

    1.原理 运动模糊产生: 由于相机传感器或物体相对运动, 按快门瞬间造成图像产生运动模糊. 在用摄像机获取景物图像时,如果在相机曝光期间景物和摄像机之间存在相对运动,例如用照相机拍摄快速运动的物体,或 ...

  9. Spring Cloud 理论篇

    show me the code and talk to me,做的出来更要说的明白 github同步收录 我是布尔bl,你的支持是我分享的动力! 微服务 在 jsp 时代,应用前后端耦合,前后端 a ...

  10. 4000字干货长文!从校招和社招的角度说说如何准备Java后端大厂面试?

    插个题外话,为了写好这篇文章内容,我自己前前后后花了一周的时间来总结完善,文章内容应该适用于每一个学习 Java 的朋友!我觉得这篇文章的很多东西也是我自己写给自己的,比如从大厂招聘要求中我们能看到哪 ...