【最大子序列和】

问题定义:对于给定序列 a1,a2,a3……an 寻找它的连续的最大和子数组

用数组 dp[i] 来保存当前最大的连续子数组,循环遍历每个数,然后每次检验 dp[i-1] 是否大于零,只要大于零就令 dp[i] = dp[i-1]+a[i] ,如果 dp[i-1]<0 ,那么直接令 dp[i]=a[i]

模板:

for(int i=2;i<=n;i++)
{if(dp[i-1]>=0)dp[i]=dp[i-1]+a[i];elsedp[i]=a[i];
}

【最大子矩阵和】

问题定义:给定一个 n 行 m 列的整数矩阵 A,现在要求 A 的一个子矩阵,使其各元素之和为最大。

最后子矩阵一定是在某两行之间的,假设子矩阵在第 i 行和第 j 行之间,那么我们可以枚举所有1<=i<=j<=m,表示最终子矩阵选取的行范围。

将每一列第 i 行到第 j 行之间的和求出来,形成一个数组 c,于是一个第 i 行到第 j 行之间的最大子矩阵和对应于这个和数组 c 的最大子段和。

模板:

for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){int temp;scanf("%d",&temp);a[i][j]=a[i-1][j]+t;}
}
int ans=-INF;
for(int i=1;i<=n;i++){for(int j=i;j<=n;j++){int sum=0;for(int k=1;k<=m;k++){sum=sum+(a[j][k]-a[i-1][k]);if(sum<0) sum=0;if(sum>ans) ans=sum;}}
}

【数字三角形】

数字三角形问题一般为:给出一个如下形式的数字三角形,现在要从左上角走到第 i 行第 j 列,每一步只能走到相邻的结点,求经过的结点的最大数字和

例如:

     7
   3 8
  8 1 0 
 2 7 4 4
4 5 2 6 5

用 F[i][j] 表示第 i 行第 j 列的最大和,则有状态转移方程:F[i][j]=a[i][j]+max(F[i−1][j],F[i−1][j−1])

模板:

for (int i=n-1;i>=1;--i)for (int j=1;j<=i;++j)a[i][j]+=max(a[i+1][j],a[i+1][j+1]);
printf("%d\n",a[1][1]);

动态规划 —— 线性 DP —— 最大和问题相关推荐

  1. 0x51.动态规划 - 线性DP(习题详解 × 10)

    目录 0x51.动态规划 - 线性DP 0x51.1 LIS问题 Problem A. 登山 (最长下降子序列) Problem B. 友好城市(思维) Problem C. 最大上升子序列和 0x5 ...

  2. 动态规划 —— 线性 DP

    [概述] 线性动态规划,是较常见的一类动态规划问题,其是在线性结构上进行状态转移,这类问题不像背包问题.区间DP等有固定的模板. 线性动态规划的目标函数为特定变量的线性函数,约束是这些变量的线性不等式 ...

  3. 动态规划 —— 线性 DP —— 字符串编辑距离

    [概述] 字符串编辑距离,即 Levenshtein 距离,是俄国科学家 Vladimir Levenshtein 提出的概念,是指从一个字符串修改到另一个字符串时,编辑单个字符所需的最少次数,编辑单 ...

  4. 动态规划 —— 线性 DP —— 序列问题

    [基本概念] 子序列: 一个序列 A=a1,a2,--an 中任意删除若干项,剩余的序列叫做 A 的一个子序列.也可以认为是从序列 A 按原顺序保留任意若干项得到的序列.(例如:对序列{1,3,5,4 ...

  5. AcWing 1018. 最低通行费【动态规划】【线性DP】【数字三角形】

    AcWing 1018. 最低通行费 一.题目链接 二.题目分析 (一)算法标签 (二)解题思路 三.AC代码 四.其它题解 一.题目链接 AcWing 1018. 最低通行费 二.题目分析 (一)算 ...

  6. 动态规划之线性DP题集

    动态规划之线性DP 文章目录 动态规划之线性DP (一)LIS问题 最长上升子序列 (朴素动规) (二分+贪心+动规) 最大子序和 (动规) (贪心) 最长连续递增序列 (动规) (双指针) 俄罗斯套 ...

  7. 动态规划:线性dp、背包问题、区间3

    区间DP 2955 -- Brackets 给定一个由字符 a1a2 ... an 组成的括号序列,你的目标是找到最长的正则括号序列的长度,它是 s 的子序列.也就是说,您希望找到最大的 m,使得对于 ...

  8. 【动态规划】线性dp P1043 数字游戏

    思路: 这题和 [动态规划]P1018 线性dp:乘积最大_m0_52043808的博客-CSDN博客 十分类似,都是把一组数分成固定的部分,然后对分好的数进行特定的操作,求操作后所得的最值 所以,两 ...

  9. 算法模板:动态规划之线性DP【沈七】

    算法模板:动态规划之线性DP 前言 线性DP 数字三角形模型 摘花生 最小路径和 不同路径模型 不同路径(有障碍) 过河卒 (综合应用) 最长上升子序列模型 木棍加工 导弹拦截 完结散花 参考文献 前 ...

最新文章

  1. 面部表情视频中进行远程心率测量:ICCV2019论文解析
  2. u-boot分析之内核启动(五)
  3. URL Loading System 概览
  4. LNMP架构的搭建--源码编译(MYSQL,PHP,nginx)
  5. 单片机原理及应用pdf_单片机原理及应用课程设计
  6. 强制类型转换运算符—C++基础篇
  7. Linux之RedHat7如何更换yum源
  8. 一周信创舆情观察(12.7~12.13)
  9. 20162327WJH程序设计与数据结构第七周总结
  10. 如何快速格式化重置Mac
  11. NVIDIA驱动安装过程中的 'nvidia-drm' appears问题
  12. YOLO多线程多模型运行模式的实施
  13. 解决:provider:Named Pipes Provider error:40无法打开SQL Server的连接
  14. System/360 大型机差点毁了 IBM !
  15. EclipseCDT
  16. c++实现推箱子游戏(带链表)
  17. 水晶报表(Crystal Report)- 水晶报表常见问题总结
  18. compareto返回1和-1的区别_温故篇:Comparable与Compatator的区别
  19. 西方国家的饮食讲究简单、清淡、新鲜
  20. slideup()和slideDown()方法的使用

热门文章

  1. AlphaGo背后这项核心技术,后来怎么样了?
  2. 2017 年度书单 Top 10
  3. 【万字长文】创业公司就应该技术选型 Spring Cloud Alibaba , 开箱即用
  4. 横空出世!IDEA画图神器来了,比Visio快10倍!
  5. 免费送新款华为笔记本 ! !不爱可折现!
  6. 《互联网人如厕报告》,厕所竟成互联网人的 “最后净土”
  7. 一篇文章带你搞定和Spring Boot有关的那些高频面试题
  8. 聊聊自己的高效学习方法~
  9. JEEWX微信开发更便捷,Ngrok 内网穿透利器应用
  10. CocoaPods打包静态库