美文网首页动态规划
动态规划总结

动态规划总结

作者: Claire_cc | 来源:发表于2018-12-01 21:35 被阅读10次

1.dp[i]表示以A[i]结尾的最值

例子1:最大连续子序列和(洛谷P3009)
dp[i]=max(dp[i-1],dp[i-1]+A[i])

例子2:最长不下降子序列
dp[i]=max(1,dp[j]+1)(j=1,2...i-1&&A[j]<A[i])
(一般不要求连续的都要从一遍历到前一个元素)


2.dp[i]表示以i点为起点的xx

例子:DAG的最长路
dp[i]表示从i点出发能得到的最长路径长度
dp[i]=max(dp[j])+length(j->i)(存在j->i)


3.dp[i][j]表示从i到j的xx

例子1:最长公共子序列
dp[i][j]表示字符串A的i位与字符串B的j位之间的最长公共子序列
if(A[i]==B[j])
dp[i][j]=dp[i-1][j-1]+1
else
dp[i][j]=max(dp[i-1][j],dp[i][j-1])
边界条件:dp[i][0]=0;dp[0][j]=0;

例子2:最长回文子串
dp[i][j]表示S[i]到S[j]表示的是否为回文子串(注意这里的dp是bool型)
if(S[I]==S[j]&&dp[i+1][j-1]==1)
dp[i][j]=1
else
dp[i][j]=0;
边界:dp[i][i]=1
if(S[i]==S[i+1]) dp[i][i+1]=1;
else dp [I][i+1]=0
实现:枚举子串的长度(从三开始,小于len)
{
枚举子串的起始端点(从0开始,小于len-子串长度+1)
}


4.背包问题

相关文章

  • 4. 动态规划算法

    1. 动态规划算法总结2. 漫画:什么是动态规划?3.算法之动态规划4. 动态规划-算法

  • 动态规划 Dynamic Programming

    从运筹学和算法的角度综合介绍动态规划 算法分类总结动态规划与静态规划的关系浅析静态规划和动态规划动态规划解非线性规...

  • 动态规划总结

    1.dp[i]表示以A[i]结尾的最值 例子1:最大连续子序列和(洛谷P3009)dp[i]=max(dp[i-1...

  • 动态规划总结

    好像理论上,都是生成一个新的数组,从前往后一步步的走,不用想太多。列出新数组第 i 个值处的推到公式(基本上会与新...

  • 动态规划总结

    动态规划 通过子问题递推求解最优的方法, 动态规划常常适用于有重叠子问题和最优子结构性质的问题 。 解题思路 动态...

  • 动态规划总结

    拉勾教育版权所有:https://kaiwu.lagou.com/course/courseInfo.htm?co...

  • 动态规划总结

    动态规划的三大步骤 动态规划,无非就是利用历史记录,来避免我们的重复计算。而这些历史记录,我们得需要一些变量来保存...

  • 动态规划例题总结

    一、01背包问题 题目描述:有n个重量和价值分别为wi,vi的物品,从这些物品中挑选出总重量不超过W的物品,求所有...

  • leetcode动态规划总结

      为了准备三月份蓝桥杯的比赛和提高下自己数据结构和算法方面的水平,所以开始在leetcode上刷起了题。刚刚开始...

  • 动态规划问题总结

    动态规划学习总结 最近在学习算法,希望写一篇博客来记录自己学习过程和总结一下自己学到的东西,方便以后的归纳整理。我...

网友评论

    本文标题:动态规划总结

    本文链接:https://www.haomeiwen.com/subject/kqoiqqtx.html