提高组动态规划精.ppt
《提高组动态规划精.ppt》由会员分享,可在线阅读,更多相关《提高组动态规划精.ppt(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、提高组动态规划第1页,本讲稿共40页例1.ProbabilisticTranslator你要翻译一篇文章,每个原文单词都有若干候选翻译词汇.要求翻译后相邻单词的权和尽量大.例如原文是a b c翻译选项为:a:x y;b:y z;c:x y权为w(y,z)=20,w(x,y)=10,w(z,x)=5则翻译成x y z权和为10+20=30原文最多50个单词.最多50个单词对权非0第2页,本讲稿共40页分析令f(k,t)为前k个单词的翻译结果中,其中最后一个单词采取第t种翻译,得到的最大权和第3页,本讲稿共40页例2.RPSChampsn(n=500)个人进行剪刀石头布游戏,每次每人等概率的出剪刀
2、石头或者布,直到一共只出现两种(否则重来一次,计入局数),然后分别在内部继续.两部分的局数都计入总局数.求游戏总局数的期望第4页,本讲稿共40页分析先计算某一局内a人出石头b人出剪刀的概率P(a,b)=(P(a-1,b)+P(a,b-1)/3则一局不重来的概率为Pn=sum3P(i,n-i)设fn为所求,则fn=(1-Pn)*(1+fn)+sum3P(i,n-i)*(1+fi+fn-i)移项得到递推公式第5页,本讲稿共40页例3.Collector你想收集所有硬币.最少需要取多少钱,使得不管取款机怎么给钱都可以得到所有种类硬币?例如1,2和1,1都是无解的.但2,3的解是5,因为只有一种方案5
3、=2+3最多50种硬币,每个硬币面值为1到10000第6页,本讲稿共40页分析何时无解?存在倍数的情况?不一定.例如3,5,8.无解当且仅当有两种不同的方式得到所有硬币面值和sum.f(i,j)表示用前i种硬币得到j的方法总数第7页,本讲稿共40页例3.旅行计划某人沿高速公路旅行,白天行走,晚上在旅馆住宿,每天最多走800公里。旅行社给出了沿路旅馆的相关信息,包括离出发点的距离和该旅馆的价格.任意两个旅馆之间的距离都将在800公里以内.求出住宿费用最少的旅行计划 冲突:日程最短住宿次数最少的旅行计划 冲突:费用最少第8页,本讲稿共40页分析设di为到旅馆i的最少费用,则有di=mindj+co
4、sti,ji,dist(j,i)=800算法一算法一:直接计算,时间O(n2).如果可以快速计算一段连续区间的最小值,则时间复杂度将得到降低!算法二算法二:用滑动窗口技术,用堆保存满足满足dist(j,i)=L=800的状态的状态dj,每个元素最多删除和增加一次,共O(nlogL)第9页,本讲稿共40页分析对窗口内的点,如果有idj则可以只保留dj,因为因为dj更好且更好且i能取时能取时j一定也能一定也能取取在新加入结点时从右往左查找,找到位置前把结点删除,直到找到正确的位置每个点最多加入和删除一次,因此为O(n)第10页,本讲稿共40页例4.基因字符串变换规则A1A2A3,其中A1,A2,A
5、3各为一个大写字母,表示字母A1可以被替换为串A2A3.给定串,判断它是否可以由字母S经过若干次替换生成.第11页,本讲稿共40页分析逆向思维:Ai,j,c为真当且仅当ij-1的子串可以合成字母c。递推时可枚举k,对于规则A1A2A3如果Ai,k,A2且Ak,j,A3,则Ai,j,A1即Ai,j,A1|=Ai,k,A2&Ak,j,A3状态有26L2个,转移有262L个,总263L3。Bi,j为ij的子串最少可以合成几个S,O(n2)特殊处理:用整数表示c1c2能直接合成的集合ec1,c2,用位运算加速第12页,本讲稿共40页例5.n-k special sets我们说一个由自然数构成的集合X是
6、n-k特殊集合,如果它满足对于集合X中的每个元素x,有1=x=n,集合X中所有元素的和大于k集合X中不包含任意一对相邻的自然数给出n,k,求n-k特殊集合有多少个第13页,本讲稿共40页分析di,j为i-j特殊集的个数,则分两类不包含i的,为di-1,j包含i的,为di-2,j-i注意边界滚动数组第14页,本讲稿共40页例6.Lecture Halls Reservation有一个演讲大厅需要我们管理,演讲者们事先定好了需要演讲的起始时间和中止时间。我们想让演讲大厅得到最大可能的使用。我们要接受一些预定而拒绝其他的预定,目标是使演讲者使用大厅的时间最长。假设在某一时刻一个演讲结束,另一个演讲就
7、可以立即开始。第15页,本讲稿共40页分析按照结束时间从小到大排序di=maxdj+Leni,其中j为右端点在i左端点前的线段集合。显然该集合是连续的若干个线段用堆维护dj,O(nlogn)。由于需要排序,这是下界。如果已经按右端点排序好,则需要二分找到可用线段的最右端,再插入状态第16页,本讲稿共40页例7.氧气瓶用(a,b,c)描述一个氧气瓶,其中a表示氧气体积,b为氮气体积,c为重量带多个氧气瓶,则三者都相加给出n种氧气瓶,选择其中的一些,使得氧气至少T升,氮气至少A升,重量最轻第17页,本讲稿共40页分析Di,j,k为只考虑前i个氧气瓶,需要氧气至少j升,氮气至少为k升的最小重量。时间
8、复杂度:O(n*T*A)第18页,本讲稿共40页例8.CoolNumbers如果一个数的二进制表达式(不含前导0)中至少有三个连续0或者三个连续1,我们称它为cool number.例如8=(1000)2,15=(1111)2都是cool number,但27=(11011)2不是求a到b中的cool number个数.例如0到16有5个cool number:7,8,14,15,16;17到100有49个.0=a=b=2147483647第19页,本讲稿共40页分析记f(x)为0到x的cool number个数,则答案为f(b)-f(a-1)集合分解:0,1011010)的数分为以下几部分:
9、0*100*1010*101100*问题转化为求已知前缀的串个数第20页,本讲稿共40页分析如果肯定cool了,则直接得到结果否则只需要考虑最后的连续数字.设f(i,j,k)为包含i位且最后有j个连续的k(k=0,1)时的cool number个数,递推即可第21页,本讲稿共40页例9.Code给定包含前K个字母的BST,代码为:空树(包含零个字母)的代码为空串.否则第一个字母为根,接着是左子树代码,最后是右子树代码代码排序,第n个代码记为(n,k)-代码目标:给定n,k,找到(n,K)-代码。(n,K为正整数,1=K=19)第22页,本讲稿共40页例9.Code当k=4时有14个4结点BST
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 提高 动态 规划
限制150内