提高组――动态规划课件.ppt

提高组――动态规划课件.ppt

ID:57000653

大小:73.00 KB

页数:40页

时间:2020-07-26

提高组――动态规划课件.ppt_第1页
提高组――动态规划课件.ppt_第2页
提高组――动态规划课件.ppt_第3页
提高组――动态规划课件.ppt_第4页
提高组――动态规划课件.ppt_第5页
资源描述:

《提高组――动态规划课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、动态规划题目选刘汝佳例1.ProbabilisticTranslator你要翻译一篇文章,每个原文单词都有若干候选翻译词汇.要求翻译后相邻单词的权和尽量大.例如原文是abc翻译选项为:a:xy;b:yz;c:xy权为w(y,z)=20,w(x,y)=10,w(z,x)=5则翻译成xyz权和为10+20=30原文最多50个单词.最多50个单词对权非0分析令f(k,t)为前k个单词的翻译结果中,其中最后一个单词采取第t种翻译,得到的最大权和例2.RPSChampsn(n<=500)个人进行剪刀石头布游戏,每次每人等概率的出剪刀石头或者布,直到一共只出现两种(否

2、则重来一次,计入局数),然后分别在内部继续.两部分的局数都计入总局数.求游戏总局数的期望分析先计算某一局内a人出石头b人出剪刀的概率P(a,b)=(P(a-1,b)+P(a,b-1))/3则一局不重来的概率为Pn=sum{3P(i,n-i)}设fn为所求,则fn=(1-Pn)*(1+fn)+sum{3P(i,n-i)*(1+fi+fn-i)}移项得到递推公式例3.Collector你想收集所有硬币.最少需要取多少钱,使得不管取款机怎么给钱都可以得到所有种类硬币?例如{1,2}和{1,1}都是无解的.但{2,3}的解是5,因为只有一种方案5=2+3最多50种

3、硬币,每个硬币面值为1到10000分析何时无解?存在倍数的情况?不一定.例如{3,5,8}.无解当且仅当有两种不同的方式得到所有硬币面值和sum.f(i,j)表示用前i种硬币得到j的方法总数例3.旅行计划某人沿高速公路旅行,白天行走,晚上在旅馆住宿,每天最多走800公里。旅行社给出了沿路旅馆的相关信息,包括离出发点的距离和该旅馆的价格.任意两个旅馆之间的距离都将在800公里以内.求出住宿费用最少的旅行计划冲突:日程最短住宿次数最少的旅行计划冲突:费用最少分析设d[i]为到旅馆i的最少费用,则有d[i]=min{d[j]}+cost[i],j

4、j,i)<=800算法一:直接计算,时间O(n2).如果可以快速计算一段连续区间的最小值,则时间复杂度将得到降低!算法二:用滑动窗口技术,用堆保存满足dist(j,i)<=L=800的状态d[j],每个元素最多删除和增加一次,共O(nlogL)分析对窗口内的点,如果有id[j]则可以只保留d[j],因为d[j]更好且i能取时j一定也能取在新加入结点时从右往左查找,找到位置前把结点删除,直到找到正确的位置每个点最多加入和删除一次,因此为O(n)例4.基因字符串变换规则A1A2A3,其中A1,A2,A3各为一个大写字母,表示字母A1可以被替换为

5、串A2A3.给定串,判断它是否可以由字母S经过若干次替换生成.分析逆向思维:A[i,j,c]为真当且仅当i…j-1的子串可以合成字母c。递推时可枚举k,对于规则A1A2A3如果A[i,k,A2]且A[k,j,A3],则A[i,j,A1]即A[i,j,A1]

6、

7、=A[i,k,A2]&&A[k,j,A3]状态有26L2个,转移有262L个,总263L3。B[i,j]为i…j的子串最少可以合成几个S,O(n2)特殊处理:用整数表示c1c2能直接合成的集合e[c1,c2],用位运算加速例5.n-kspecialsets我们说一个由自然数构成的集合X是n-k特殊集合

8、,如果它满足对于集合X中的每个元素x,有1<=x<=n,集合X中所有元素的和大于k集合X中不包含任意一对相邻的自然数给出n,k,求n-k特殊集合有多少个分析d[i,j]为i-j特殊集的个数,则分两类不包含i的,为d[i-1,j]包含i的,为d[i-2,j-i]注意边界滚动数组例6.LectureHallsReservation有一个演讲大厅需要我们管理,演讲者们事先定好了需要演讲的起始时间和中止时间。我们想让演讲大厅得到最大可能的使用。我们要接受一些预定而拒绝其他的预定,目标是使演讲者使用大厅的时间最长。假设在某一时刻一个演讲结束,另一个演讲就可以立即开始

9、。分析按照结束时间从小到大排序d[i]=max{d[j]}+Len[i],其中j为右端点在i左端点前的线段集合。显然该集合是连续的若干个线段用堆维护d[j],O(nlogn)。由于需要排序,这是下界。如果已经按右端点排序好,则需要二分找到可用线段的最右端,再插入状态例7.氧气瓶用(a,b,c)描述一个氧气瓶,其中a表示氧气体积,b为氮气体积,c为重量带多个氧气瓶,则三者都相加给出n种氧气瓶,选择其中的一些,使得氧气至少T升,氮气至少A升,重量最轻分析D[i,j,k]为只考虑前i个氧气瓶,需要氧气至少j升,氮气至少为k升的最小重量。时间复杂度:O(n*T*A

10、)例8.CoolNumbers如果一个数的二进制表达式(不含前导0

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。