动态规划
Liukairui
这个作者很懒,什么都没留下…
展开
-
动态规划1-背包九讲V2.0 beat2
背包问题九讲 2.0 beta1.2 崔添翼 (Tianyi Cui)[1] 2012-05-08[2] 本文题为《背包问题九讲》,从属于《动态规划的思考艺术》系列。 这系列文章的第一版于 2007 年下半年使用 EmacsMuse 制作,以 HTML 格式发布 到网上,转载众多,有一定影响力。 2011 年 9 月,本系列文章由原作者用 LATEX 重新制作并全面修订,您现在看到的是...转载 2018-03-02 13:07:52 · 1058 阅读 · 0 评论 -
计蒜客习题:最大子阵dp思路
前言: 今天花了很长时间,看了无数人写的帖子,但是几乎没有人把这个问题一下子说得很清楚,所以,我把这个问题按照自己的思路写出来,希望能够把这个问题讲清楚。 问题: 求一个M*N的矩阵的最大子矩阵和。 比如在如下这个矩阵中: 0 -2 -7 0 9 2 -6 2 -4 1 -4 1 -1 8 &nbs...转载 2018-01-21 09:58:30 · 660 阅读 · 0 评论 -
动态规划2-最长上升序列(LIS)
最长上升序列(LIS) 在原序列取任意多项,不改变他们在原来数列的先后次序,得到的序列称为原序列的子序列。最长上升子序列,就是给定序列的一个最长的、数值从低到高排列的子序列,最长子序列不一定是唯一的。例如,序列2,1,5,3,6,4,6,3的最长上升子序列为1,3,4,6和2,3,4,6,长度均为4 。 先确定动态规划的状态,这个问题可以用序列某一项作为结尾来作为一个状态。用 表示一定以第 项...原创 2018-04-06 23:40:49 · 258 阅读 · 0 评论 -
动态规划3-最长公共子序列(LCS)
最长公共子序列(LCS) 给定两个序列S1和S2,求二者公共子序列S3的最长的长度。 可以发现这个问题仍然可以按照序列的长度来划分状态,也就是S1的前i个字符和S2的前j个字符的最长公共子序列长度,记为lcs[i][j]。 状态转移方程: S1[i]==S2[j]:lcs[i][j]=lcs[i-1][j-1]+1 S1[i]!=S2[j]:lcs[i][j]=max(lcs[i-1][...原创 2018-04-07 00:01:51 · 449 阅读 · 0 评论 -
动态规划4-状态压缩动态规划(状压DP)
状态压缩动态规划(状压DP) 若元素数量比较小(不超过 20)时,想要存储每个元素取或不取的状态时,可以借助位运算将状态压缩。需要借助状态压缩过程的动态规划就是状态压缩 DP(很多地方会简称为状压 DP)。 取若干元素,也就是对应的位置记为1,其余位置记为0。例如,一共有5个元素 a,b,c,d,e,我们分别用1,2,4,8,16表示这五个元素,则集合{a,c,e}可以用(10101)=21来...原创 2018-04-07 00:02:25 · 598 阅读 · 0 评论 -
动态规划5-区间动态规划(区间DP)
区间动态规划 开始学习动态规划进阶了,不过感觉这个难度有点超NOIP省赛的难度了。。。算了,反正都买了,还是学吧。。。 1.概述 区间 DP:是指在一段区间上进行的一系列动态规划。 对于区间 DP 这一类问题,我们需要计算区间[1,n] 的答案,通常用一个二维数组 dp表示,其中 dp[x][y] 表示区间 [x,y]。 2.一般套路 有些题目,dp[l][r] 由 dp[...原创 2018-07-10 13:32:00 · 1814 阅读 · 0 评论