区间dp

顾名思义:区间dp就是在区间上进行动态规划,求解一段区间上的最优解。主要是通过合并小区间的 最优解进而得出整个大区间上最优解的dp算法。

核心思路

既然让我求解在一个区间上的最优解,那么我把这个区间分割成一个个小区间,求解每个小区间的最优解,再合并小区间得到大区间即可。所以在代码实现上,我可以枚举区间长度len为每次分割成的小区间长度(由短到长不断合并),内层枚举该长度下可以的起点,自然终点也就明了了。然后在这个起点终点之间枚举分割点,求解这段小区间在某个分割点下的最优解。栗子如下:

for(int len = 1;len

朴素区间dp(n^3)

例题: [NOI1995] 石子合并

在一个圆形操场的四周摆放 (N) 堆石子,现要将石子有次序地合并成一堆,规定每次只能选相邻的 (2) 堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。

试设计出一个算法,计算出将 (N) 堆石子合并成 (1) 堆的最小得分和最大得分。

数据的第 (1) 行是正整数 (N),表示有 (N) 堆石子。

第 (2) 行有 (N) 个整数,第 (i) 个整数 (a_i) 表示第 (i) 堆石子的个数。

输出共 (2) 行,第 (1) 行为最小得分,第 (2) 行为最大得分。

4
4 5 9 4
43
54

(1\leq N\leq 100),(0\leq a_i\leq 20)。

转移方程:dp[j][ends] = min(dp[j][ends],dp[j][i]+dp[i+1][ends]+weigth[i][ends]);
j~ends堆合并 = 较小的(原来, 分割点i左部分重量 + 分割点i右边部分重量 + 合并后两堆总重量)注:可以用sum[j] – sum[i – 1]表示i~j堆的重量!

#include
#include
#include
#include
using namespace std;
#define INF 0x3f3f3f
int stone[105];
int dp[105][105];
int sum[105];
int main()
{
    int n;
    scanf("%d",&n);
    memset(sum,0,sizeof(sum));
    memset(dp,INF,sizeof(dp));
    for(int  i =1;i

Original: https://www.cnblogs.com/aska00/p/16525346.html
Author: Aska0
Title: 区间dp

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/685767/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Qt学习笔记

    联系方式 QQ: 2653728884 ,加Q请注明添加原因! Original: https://www.cnblogs.com/arminker/p/5121596.htmlA…

    技术杂谈 2023年7月11日
    067
  • 什么是root帐户?

    root帐户就像一个系统管理员帐户,允许你完全控制系统。你可以在此处创建和维护用户帐户,为每个帐户分配不同的权限。每次安装Linux时都是默认帐户。 Java Program! O…

    技术杂谈 2023年5月31日
    078
  • 存算一体技术

    存算一体技术1.存算一体基本原理冯·诺依曼计算机体系架构,计算与存储一直相互分离。大数据时代,以数据为中心的数据密集型技术成为主流系统设计思路,不再仅限于数据的计算和加工,更看重的…

    技术杂谈 2023年5月31日
    080
  • 从 jQuery 到 Vue3 的快捷通道

    当初使用 jQuery 做了几个简单的项目,算是有一点点了解,现在学习Vue3,发现了一个可以快速转换思维的通道 —— 使用CDN的方式模拟 Vite 建立的项目! CDN方式 j…

    技术杂谈 2023年5月31日
    095
  • JWT的验证(转载)

    JWT的验证流程分为两个步骤: 1.签名验证 当接收方接收到一个JWT的时候,首先要对这个JWT的完整性进行验证,这个就是签名认证。它验证的方法其实很简单,只要把header做ba…

    技术杂谈 2023年5月31日
    091
  • Java-Lambda

    学习Lambda的理由 为了了解Lambda表达式,我们必须了解什么是函数式接口,这是Lambda表达式得以实现的依据。 在java中,函数式接口指 注解了@FunctionalI…

    技术杂谈 2023年7月11日
    063
  • 一文搞懂EMAS Serverless小程序开发|电子书免费下载

    >> 快来免费下载|电子书《五天玩转 EMAS Serverless》 << 点击免费下载 《五天玩转 EMAS Serverless》 EMAS Serv…

    技术杂谈 2023年7月11日
    084
  • Python自动化办公:读取Excel数据并批量生成合同,高效办公,快速回家

    前言 在我们的工作中,面临着大量的重复性工作,通过人工方式处理往往耗时耗力易出错。而Python在自动化办公方面具有极大的优 势,可以解决我们工作中遇到的很多重复性问题,分分钟搞定…

    技术杂谈 2023年6月21日
    087
  • 我的创作纪念日

    机缘 2018 年 08 月 07 日是我的创作一周年纪念日。大三刚过完,我还是一名 IT 小白,也并没有考研的想法,当时应该是在实习,偶尔一次上网搜索代码问题的时候看到了 CSD…

    技术杂谈 2023年7月25日
    075
  • 手把手教你用JAVA实现“语音识别”功能(声音转文字)标贝科技

    手把手教你用JAVA实现”语音识别”功能(声音转文字)标贝科技 前言 什么是语音识别?将自然语音转换为文本信息,本篇文章将介绍”一句话识别&#8…

    技术杂谈 2023年7月25日
    075
  • win10搭建mysql主从复制(单台机器)

    找了好多文章,都是多台机器,而且写的博客实在看不下去,无奈。环境: mysql5.5win10主机和从机都是在win10下面的一个目录下。另外:如果是从没有安装过mysql的可以直…

    技术杂谈 2023年7月25日
    095
  • MySQL数据库-数据表(四)

    where 子句,通常用于在找寻数据的时候做一个条件筛选,得到满足条件的记录行数; 注意:新增( insert)不能做筛选; where 子句中常见的 运算符有如下几种: 比较运算…

    技术杂谈 2023年6月21日
    092
  • Worktile协同特色之一:无处不在的关注

    Worktile选择了更为方便的方式,即引入关注机制,当某个成员与某个任务、文件、讨论、文档有关联时,直接把她添加到关注列表中,或者成员自己也可以主动把自己加入关注列表,这样当任务…

    技术杂谈 2023年5月31日
    088
  • 英国延长 UKCA 标记截止日期

    政府于 2022 年 11 月 14 日宣布,企业将有 2 年的时间来应用新的 UKCA 产品标记。在 2024 年 12 月 31 日之前,企业可以选择使用 UKCA 或 CE …

    技术杂谈 2023年6月21日
    083
  • 微信公众号申请+新浪SAE申请

    一、 新浪SAE服务申请1. 注冊地址:http://t.cn/RqMHPto2. 选择控制台》》云应用SAE3. 创建新应用4. 填写域名5. 代码管理选择SVN6. 创建版本号…

    技术杂谈 2023年5月31日
    089
  • springboot 整合 jsr-303 数据校验

    数据校验 element前端自定义校验规则 :rules=”dataRule” 绑定数据校验规则方法 * firstLetter: [ { validato…

    技术杂谈 2023年7月25日
    069
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球