欢迎来到天天文库
浏览记录
ID:36801398
大小:362.10 KB
页数:46页
时间:2019-05-10
《《区间类型动态规划》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、区间类动态规划合并类动态规划的特点合并:意思就是将两个或多个部分进行整合,当然也可以反过来,也就是是将一个问题进行分解成两个或多个部分。特征:能将问题分解成为两两合并的形式求解:对整个问题设最优值,枚举合并点,将问题分解成为左右两个部分,最后将左右两个部分的最优值进行合并得到原问题的最优值。有点类似分治算法的解题思想。典型试题:整数划分,凸多边形划分、石子合并、多边形合并、能量项链等。整数划分给出一个长度为n的数要在其中加m-1个乘号,分成m段这m段的乘积之和最大m2、。但有反例。如191919分成3段19*19*19=6859但191*91*9=156429,显然乘积更大。将一个数分成若干段乘积后比该数小,因为输入数不超过20位,因此不需高精度运算。证明:假设AB分成A和B,且A,B<10,则有AB=10*A+B>A*B(相当于B个A相加)同理可证明A,B为任意位也成立动态规划可以先预处理出原数第i到j段的数值A[i,j]是多少,这样转移就方便了,预处理也要尽量降低复杂度。F[i,j]表示把这个数前i位分成j段得到的最大乘积。F[i,j]=F[k,j-1]*A[k+1,i],13、n2]由于有10000组数据,因此估计时间复杂度为10000*203=8*107至于说输出,记录转移的父亲就可以了。石子合并在一园形操场四周摆放N堆石子(N≤100);现要将石子有次序地合并成一堆;规定每次只能选相临的两堆合并成一堆,并将新的一堆的石子数,记为该次合并的得分。选择一种合并石子的方案,使得做N-1次合并,得分的总和最少选择一种合并石子的方案,使得做N-1次合并,得分的总和最大示例贪心法N=5石子数分别为346542。用贪心法的合并过程如下:第一次346542得分5第二次54654得分9第三次9654得分9第四次969得分15第五次159得分24、4第六次24总分:62然而有更好的方案:第一次346542得分7第二次76542得分13第三次13542得分6第四次1356得分11第五次1311得分24第六次24总分:61显然,贪心法是错误的。分析假设只有2堆石子,显然只有1种合并方案如果有3堆石子,则有2种合并方案,((1,2),3)和(1,(2,3))如果有k堆石子呢?不管怎么合并,总之最后总会归结为2堆,如果我们把最后两堆分开,左边和右边无论怎么合并,都必须满足最优合并方案,整个问题才能得到最优解。如下图:动态规划设t[i,j]表示从第i堆到第j堆石子数总和。Fmax(i,j)表示将从第i堆石子合5、并到第j堆石子的最大的得分Fmin(i,j)表示将从第i堆石子合并到第j堆石子的最小的得分同理,Fmax[i,i]=0,Fmin[i,i]=0时间复杂度为O(n3)优化由于石子堆是一个圈,因此我们可以枚举分开的位置,首先将这个圈转化为链,因此总的时间复杂度为O(n4)。这样显然很高,其实我们可以将这条链延长2倍,扩展成2n-1堆,其中第1堆与n+1堆完全相同,第i堆与n+i堆完全相同,这样我们只要对这2n堆动态规划后,枚举f(1,n),f(2,n+1),…,f(n,2n-1)取最优值即可即可。时间复杂度为O(8n3),如下图:猜想合并第i堆到第j堆石子的最6、优断开位置s[i,j]要么等于i+1,要么等于j-1,也就是说最优合并方案只可能是:{(i)(i+1…j)}或者{(i…j-1)(j)}证明设合并第i堆到第j堆石子的断开位置p,且i7、q+1,p]+Fmax[p+1,j]+t[i,j]+t[q+1,j]由于qt[p+1,j]与情况1是对称。(证明略)状态转移方程设t[i,j]表示从第i堆到第j堆石子数总和。Fmax(i,j)表示将从第i堆石子合并到第j堆石子的最大的得分Fmin(i,j)表示将从第i堆石子合并到第j堆石子的最小的得分同理,Fmax[i,i]=0,Fmin[i,i]=0时间复杂度为O(n2)能量项链在Mars星8、球上,每个Mars人都随身佩带着一串能量项链。在项链上有N颗能量珠
2、。但有反例。如191919分成3段19*19*19=6859但191*91*9=156429,显然乘积更大。将一个数分成若干段乘积后比该数小,因为输入数不超过20位,因此不需高精度运算。证明:假设AB分成A和B,且A,B<10,则有AB=10*A+B>A*B(相当于B个A相加)同理可证明A,B为任意位也成立动态规划可以先预处理出原数第i到j段的数值A[i,j]是多少,这样转移就方便了,预处理也要尽量降低复杂度。F[i,j]表示把这个数前i位分成j段得到的最大乘积。F[i,j]=F[k,j-1]*A[k+1,i],13、n2]由于有10000组数据,因此估计时间复杂度为10000*203=8*107至于说输出,记录转移的父亲就可以了。石子合并在一园形操场四周摆放N堆石子(N≤100);现要将石子有次序地合并成一堆;规定每次只能选相临的两堆合并成一堆,并将新的一堆的石子数,记为该次合并的得分。选择一种合并石子的方案,使得做N-1次合并,得分的总和最少选择一种合并石子的方案,使得做N-1次合并,得分的总和最大示例贪心法N=5石子数分别为346542。用贪心法的合并过程如下:第一次346542得分5第二次54654得分9第三次9654得分9第四次969得分15第五次159得分24、4第六次24总分:62然而有更好的方案:第一次346542得分7第二次76542得分13第三次13542得分6第四次1356得分11第五次1311得分24第六次24总分:61显然,贪心法是错误的。分析假设只有2堆石子,显然只有1种合并方案如果有3堆石子,则有2种合并方案,((1,2),3)和(1,(2,3))如果有k堆石子呢?不管怎么合并,总之最后总会归结为2堆,如果我们把最后两堆分开,左边和右边无论怎么合并,都必须满足最优合并方案,整个问题才能得到最优解。如下图:动态规划设t[i,j]表示从第i堆到第j堆石子数总和。Fmax(i,j)表示将从第i堆石子合5、并到第j堆石子的最大的得分Fmin(i,j)表示将从第i堆石子合并到第j堆石子的最小的得分同理,Fmax[i,i]=0,Fmin[i,i]=0时间复杂度为O(n3)优化由于石子堆是一个圈,因此我们可以枚举分开的位置,首先将这个圈转化为链,因此总的时间复杂度为O(n4)。这样显然很高,其实我们可以将这条链延长2倍,扩展成2n-1堆,其中第1堆与n+1堆完全相同,第i堆与n+i堆完全相同,这样我们只要对这2n堆动态规划后,枚举f(1,n),f(2,n+1),…,f(n,2n-1)取最优值即可即可。时间复杂度为O(8n3),如下图:猜想合并第i堆到第j堆石子的最6、优断开位置s[i,j]要么等于i+1,要么等于j-1,也就是说最优合并方案只可能是:{(i)(i+1…j)}或者{(i…j-1)(j)}证明设合并第i堆到第j堆石子的断开位置p,且i7、q+1,p]+Fmax[p+1,j]+t[i,j]+t[q+1,j]由于qt[p+1,j]与情况1是对称。(证明略)状态转移方程设t[i,j]表示从第i堆到第j堆石子数总和。Fmax(i,j)表示将从第i堆石子合并到第j堆石子的最大的得分Fmin(i,j)表示将从第i堆石子合并到第j堆石子的最小的得分同理,Fmax[i,i]=0,Fmin[i,i]=0时间复杂度为O(n2)能量项链在Mars星8、球上,每个Mars人都随身佩带着一串能量项链。在项链上有N颗能量珠
3、n2]由于有10000组数据,因此估计时间复杂度为10000*203=8*107至于说输出,记录转移的父亲就可以了。石子合并在一园形操场四周摆放N堆石子(N≤100);现要将石子有次序地合并成一堆;规定每次只能选相临的两堆合并成一堆,并将新的一堆的石子数,记为该次合并的得分。选择一种合并石子的方案,使得做N-1次合并,得分的总和最少选择一种合并石子的方案,使得做N-1次合并,得分的总和最大示例贪心法N=5石子数分别为346542。用贪心法的合并过程如下:第一次346542得分5第二次54654得分9第三次9654得分9第四次969得分15第五次159得分2
4、4第六次24总分:62然而有更好的方案:第一次346542得分7第二次76542得分13第三次13542得分6第四次1356得分11第五次1311得分24第六次24总分:61显然,贪心法是错误的。分析假设只有2堆石子,显然只有1种合并方案如果有3堆石子,则有2种合并方案,((1,2),3)和(1,(2,3))如果有k堆石子呢?不管怎么合并,总之最后总会归结为2堆,如果我们把最后两堆分开,左边和右边无论怎么合并,都必须满足最优合并方案,整个问题才能得到最优解。如下图:动态规划设t[i,j]表示从第i堆到第j堆石子数总和。Fmax(i,j)表示将从第i堆石子合
5、并到第j堆石子的最大的得分Fmin(i,j)表示将从第i堆石子合并到第j堆石子的最小的得分同理,Fmax[i,i]=0,Fmin[i,i]=0时间复杂度为O(n3)优化由于石子堆是一个圈,因此我们可以枚举分开的位置,首先将这个圈转化为链,因此总的时间复杂度为O(n4)。这样显然很高,其实我们可以将这条链延长2倍,扩展成2n-1堆,其中第1堆与n+1堆完全相同,第i堆与n+i堆完全相同,这样我们只要对这2n堆动态规划后,枚举f(1,n),f(2,n+1),…,f(n,2n-1)取最优值即可即可。时间复杂度为O(8n3),如下图:猜想合并第i堆到第j堆石子的最
6、优断开位置s[i,j]要么等于i+1,要么等于j-1,也就是说最优合并方案只可能是:{(i)(i+1…j)}或者{(i…j-1)(j)}证明设合并第i堆到第j堆石子的断开位置p,且i
7、q+1,p]+Fmax[p+1,j]+t[i,j]+t[q+1,j]由于q
t[p+1,j]与情况1是对称。(证明略)状态转移方程设t[i,j]表示从第i堆到第j堆石子数总和。Fmax(i,j)表示将从第i堆石子合并到第j堆石子的最大的得分Fmin(i,j)表示将从第i堆石子合并到第j堆石子的最小的得分同理,Fmax[i,i]=0,Fmin[i,i]=0时间复杂度为O(n2)能量项链在Mars星
8、球上,每个Mars人都随身佩带着一串能量项链。在项链上有N颗能量珠
此文档下载收益归作者所有