DP
文章平均质量分 74
taesimple
这个作者很懒,什么都没留下…
展开
-
最优二叉查找树问题
问题描述(详见算法导论P212-P213) 对于给定关键字序列,构造一颗最优的二叉查找树T,使得在T内的一次搜索的期望代价最小 前提概念 一颗最优二叉树不一定是一颗整体高度最小的树;也不一定总把具有最大概率的关键字作为根节点二叉查找树的子树必定包含连续范围内的关键字当一颗树成为一个节点的子树时,它的期望代价增加值为该树中所有概率的总和 最优子结构 设包含有序关键字原创 2011-07-06 15:09:08 · 587 阅读 · 0 评论 -
最长公共子序列(LCS)问题
问题描述:见算法导论P208-P209 前提概念 给定一个序列X = (x1, x2, ..., xm),对i = 0, 1, ..., m,记X的第i个前缀为Xi = (x1, x2, ..., xi),故Xm = X,而X0是个空序列 一个给定序列的子序列就是该序列去掉0个或多个元素(不一定连续),如BCDB是ABCBDAB的一个子序列 基于以上定义,最长公共子序列(LCS)有原创 2011-07-04 10:29:19 · 292 阅读 · 0 评论 -
矩阵链乘法问题
问题描述(详见算法导论P197-P198): 已知:给定n个矩阵构成的一个矩阵链(A1, A2, ..., An),矩阵Ai的维数为pi-1×pi 求:决定该矩阵链的乘法结合顺序(即加括号),使得矩阵链乘法的运行时间最短 几个前提概念 矩阵链乘法的运行时间将以标量乘法(单行×单列)的次数来衡量A是p×q矩阵,B是q×r矩阵,则A×B的运行时间为pqr矩阵乘法满足结合律原创 2011-07-03 15:56:35 · 1348 阅读 · 0 评论 -
装配线调度问题及DP的一点总结
DP的一点总结 DP拥有以下两点特征(必要条件): 最优子结构:问题的最优解包含了子问题的最优解。贪心算法和分治法同样具有此特征重叠子问题:解原问题的递归算法可反复地解同样的子问题,而不是总在产生新的子问题。分治法不同,它在递归的每一步都产生全新的子问题 Tips:DP通常应用于最优化问题,即此类问题可能有很多种可行解,而我们希望找出一个具有最优值的解 DP大致有四个步原创 2011-07-03 09:09:26 · 531 阅读 · 0 评论 -
最大子序列和问题
问题描述:给定一个整数序列(可能有负数),求一子序列(记为L‘)使得该子序列所有元素之和最大。例:给定序列-2,11,-4,13,-5,-2,则最大子序列和为20(11,-4,13) 方法一:遍历穷举——O(n^2) 略 方法二:分治递归——O(n*logn) 思路:将输入序列L分为左右两个子序列L1和L2,则L’只可能以下面三种情况出现: L‘完全在L1中,则L原创 2012-05-08 10:52:32 · 145 阅读 · 0 评论 -
最长上升子序列(LIS)问题
问题描述 给定一个序列(a1, a2, ..., an),求它的一个子序列(ak1, ak2, ..., aki) (不一定连续),使得该子序列满足ak1 递归表达式 作如下定义 e(i):表示以ai为最后一个元素的最长子序列的长度 由以上定义可得如下递归表达式 则原问题最优解为max{e(1), e(2), ..., e(n)原创 2011-07-08 23:34:31 · 512 阅读 · 0 评论