动态规划
文章平均质量分 74
学习
小菜鸡LC
这个作者很懒,什么都没留下…
展开
-
动态规划(5)
最优二叉搜索树问题问题描述:给定n个互异的关键字组成的序列K=<k1,k2,...,kn>,且关键字有序(k1<k2<...<kn),我们想从这些关键字中构造一棵二叉查找树。对每个关键字ki,一次搜索搜索到的概率为pi。可能有一些搜索的值不在K内,因此还有n+1个“虚拟键”d0,d1,...,dn,他们代表不在K内的值。具体:d0代表所有小于k1的值,dn代表所有大于kn的值。而对于i = 1,2,...,n-1,虚拟键di代表所有位于ki和ki+1之间的值...原创 2021-11-26 15:27:33 · 805 阅读 · 0 评论 -
动态规划(4)
最长公共子序列问题(LCS问题)1.问题描述:给定两个序列X<x1,x2,x3....xn>与Y<y1,y2,y3....yn>,求X,Y长度最长的公共子序列。注意:子序列不一定是连续的,例如:X=<A,B,C,B,D,A,B>,Y=<B,D,C,A,B,A>两个序列的最长公共子序列为<B,D,A,B>。下面利用动态规划的思想解决LCS问题。步骤一:刻画最长公共子序列的特征步骤二:构造一个递归解通过最长公共子序列的.原创 2021-11-25 16:11:04 · 271 阅读 · 0 评论 -
动态规划(3)
矩阵链乘法问题:1.完全括号化:给定一个n个矩阵的序列(A1A2A3......An),我们希望计算它的乘积,由于乘法的结合律,因此任何加括号的方法都会得到相同的结果,我们称这个性质叫做完全括号化。2.矩阵的相容性:矩阵A的列数等于B的行数,即A与B相容。只有两个相容的矩阵才可以想乘。3.矩阵链乘法问题:给定n个矩阵的链<A1,A2,...,An>,矩阵Ai的规模为p(i-1)×p(i) (1<=i<=n),求完全括号化方案,使得计算乘积A1A2...An所需标量乘法次数原创 2021-11-24 16:14:04 · 326 阅读 · 0 评论 -
动态规划(1)
动态规划1.动态规划的基本思想动态规划常常适用于有重叠子问题和最优子结构性质的问题,动态规划方法所耗时间往往远少于朴素解法。动态规划背后的基本思想非常简单。大致上,若要解一个给定问题,我们需要解其不同部分(即子问题),再根据子问题的解以得出原问题的解。通常许多子问题非常相似,为此动态规划法试图仅仅解决每个子问题一次,从而减少计算量:一旦某个给定子问题的解已经算出,则将其记忆化存储,以便下次需要同一个子问题解之时直接查表。这种做法在重复子问题的数目关于输入的规模呈指数增长时特别有用。动态规划的适用原创 2021-11-16 15:31:08 · 102 阅读 · 0 评论 -
动态规划(2)
3.钢条切割问题问题描述:给定一段长度为n英寸的钢条和一个价格表Pi(i=1,2,3...n),求切割钢条方案,使得销售收益Rn最大。长度i 1 2 3 4 5 6 7 8 价格Pi 1 5 8 9 10 17 17 20 问题解析:长度为n的钢条共有2^(n-1)种切割方案(不切割也算一种),如果一个最优解是将钢条切割为k段(1<=k<=n),那么最优切割方案为:...原创 2021-11-17 16:48:05 · 190 阅读 · 0 评论