![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划
文章平均质量分 81
pikapikah
这个作者很懒,什么都没留下…
展开
-
动态规划--公共子序列LCS
一、问题描述: 求两个字符串的最长公共子串的长度。两个字符串X和Z的公共子串是指X中按序取一些字符构成的子串与在Z中按同样方法得到的一个子串相同。 例如:X=“abcdefghi” Z=“xyazdwf” 则”a” “d” “f” “ad” “df” “adf”都是它们的公共子串,而最长公共子串的长度为3。 二、状态空间: f(i, j)表示第一个字符串原创 2018-01-27 08:30:11 · 237 阅读 · 0 评论 -
动态规划--最长递增子序列LIS
要求 输入一个数组a,求它的最长单调递增子序列 解题 动态规划dp数组完美解决 dp[i]:以a[i]结尾的最长递增子序列的长度。 初始化:dp[i]=1 状态转移方程:dp[i] = max( dp[0…i-1] +1, dp[i] ). 解释:对于dp[i],求a[i]结尾的最长递增子序列,在a[0..i-1]中选出比a[i]小且长度最长的dp[j] ;如果所有的 dp[0…i-1] ...原创 2018-05-19 10:15:02 · 217 阅读 · 0 评论 -
JSCPC2018 I. Longest Increasing Subsequence
I. Longest Increasing Subsequence Bobo has a sequence a1,a2,…,an. Let f(x) be the length of longest strictly increasing subsequence after replacing all the occurrence of 0 with x. He would like to ...原创 2018-05-19 11:22:19 · 499 阅读 · 2 评论 -
HDU 1024 Max Sum Plus Plus (动态规划 + 滚动数组)
题目链接 题意 求最大m字段和,给一个数组,把它分成m段,求分成m段的最大和 题解 首先明确使用动态规划二维的动态数组肯定是不可以的,会超内存,或超时。 不过为了方便理解,还是得先来看一下二维动态数组的解题思路: dp[i][j] : 表示数组a的前 j 项分成 i 段,且第 j 项包含在第 i 段时的最大和 那么对于a[j],有两种分配方案 要么和前 j-1 项共同组成这 i 段 要...原创 2018-05-24 17:45:53 · 163 阅读 · 0 评论