随笔分类 - 算法竞赛之动态规划
摘要:导语 状压DP分两大类,一类是集合式,另一类就是棋盘式(即基于连通性)。 其中,集合式状压DP难度相较后者略大,形式复杂多变。而棋盘式状压DP的题目样式都相差不多,解法也都殊途同归,因此将这一类题进行总结,不难归结出一套解题模板。 正文 我们先看以下三个例题。 国王 题目链接 算法概述 状态表示:f
阅读全文
摘要:本博客部分内容参考:《算法竞赛进阶指南》 一.区间DP 划重点: 以前所学过的线性DP一般从初始状态开始,沿着阶段的扩张向某个方向递推,直至计算出目标状态。 区间DP也属于线性DP的一种,它以“区间长度”作为DP的“阶段”,使用两个坐标(区间的左、右端点)描述每个维度。在区间DP中,一个状态由若干个
阅读全文
摘要:线性DP入门的三道经典题思路这里就不多说了,直接上代码: 数字三角形: 题目链接:戳 LIS问题: 题目链接:戳 LCS问题: 题目链接:戳 LIS问题二分算法 题目链接:戳 这里要讲的是LIS问题的二分+贪心算法,可以将时间复杂度从O(n²)降低为O(nlogn) [算法思路] 用数组b存储序列a
阅读全文
摘要:一.0/1背包 题目链接:戳 因为二维数组的动规维护极其简单,这里就不再详述了。 二维数组降低空间开销的方法是使用滚动数组,可以将空间复杂度从O(nm)降低为O(m),此处也不赘述。 直接讲讲一维数组维护的思路: 先看二维数组动规的状态转移方程: F[i,j]=max{F[i-1,j],F[i-1,
阅读全文

浙公网安备 33010602011771号