ImageVerifierCode 换一换
格式:PPT , 页数:32 ,大小:327.51KB ,
文档编号:3376397      下载积分:25 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-3376397.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(三亚风情)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(ACM动态规划入门课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

ACM动态规划入门课件.ppt

1、ACM程序设计程序设计谢勇ericxiesina2022-8-82今天,今天,你你 ACAC吗?吗?依然没有2022-8-83第第四四讲讲动态规划入门动态规划入门(Dynamic programmingDynamic programming)2022-8-84一、一、经典问题经典问题:数塔问题数塔问题 有形如下图所示的数塔,从顶部出发,在每有形如下图所示的数塔,从顶部出发,在每一结点可以选择向左走或是向右走,一直走到底一结点可以选择向左走或是向右走,一直走到底层,要求找出一条路径,使路径上的值最大。层,要求找出一条路径,使路径上的值最大。2022-8-85用用暴力暴力的方法,可以吗?的方法,可

2、以吗?2022-8-86这道题如果用枚举法(暴力思想),在数塔层数稍大的情况下(如31),则需要列举出的路径条数将是一个非常庞大的数目(230=10243 109=10亿)。试想一下:试想一下:2022-8-87 拒绝拒绝暴力,暴力,倡导倡导和谐和谐2022-8-88从顶点出发时到底向左走还是向右走应取决于是从顶点出发时到底向左走还是向右走应取决于是从左走能取到最大值还是从右走能取到最大值,只要从左走能取到最大值还是从右走能取到最大值,只要左右两道路径上的最大值求出来了才能作出决策。左右两道路径上的最大值求出来了才能作出决策。同样,下一层的走向又要取决于再下一层上的最同样,下一层的走向又要取决

3、于再下一层上的最大值是否已经求出才能决策。这样一层一层推下去,大值是否已经求出才能决策。这样一层一层推下去,直到倒数第二层时就非常明了。直到倒数第二层时就非常明了。如数字如数字2,只要选择它下面较大值的结点,只要选择它下面较大值的结点19前进前进就可以了。所以实际求解时,可从底层开始,层层递就可以了。所以实际求解时,可从底层开始,层层递进,最后得到最大值。进,最后得到最大值。结论:自顶向下的分析,自底向上的计算。结论:自顶向下的分析,自底向上的计算。考虑一下:考虑一下:2022-8-89二、二、经典问题经典问题:最长有序子序列:最长有序子序列I012345678NumI147258369202

4、2-8-810解决方案:解决方案:I012345678NumI147258369FI1232343452022-8-811思考思考 11601160 FatMouses Speed FatMouses Speed Sample Input6008 1300 6008 1300 6000 2100 6000 2100 500 2000 500 2000 1000 4000 1000 4000 1100 3000 1100 3000 6000 2000 6000 2000 8000 1400 8000 1400 6000 1200 6000 1200 2000 1900 2000 1900 Sam

5、ple Output4 4 5 9 72022-8-812再再思考思考(10871087)Super Jumping!Super Jumping!Jumping!Jumping!Juping!Juping!解题思路?解题思路?2022-8-814三、三、经典问题经典问题:最长公共子序列:最长公共子序列HDOJ-1159HDOJ-1159:Sample Inputabcfbc abfcababcfbc abfcabprogramming contest programming contest abcd mnp abcd mnp Sample OutputSample Output 4 4 2 2

6、 0 02022-8-815a ab bc cf fb bc ca a1 11 11 11 11 11 1b b1 12 22 22 22 22 2f f1 12 22 23 33 33 3c c1 12 23 33 33 34 4a a1 12 23 33 33 34 4b b1 12 23 33 34 44 4辅助空间变化示意图辅助空间变化示意图2022-8-816f(i,j)=n由于f(i,j)只和f(i-1,j-1),f(i-1,j)和f(i,j-1)有关,而在计算f(i,j)时,只要选择一个合适的顺序,就可以保证这三项都已经计算出来了,这样就可以计算出f(i,j).这样一直推到f(l

7、en(a),len(b)就得到所要求的解了.f(i-1,j-1)+1(ai=bj)max(f(i-1,j),f(i,j-1)(ai!=bj)子结构特征:子结构特征:2022-8-817四四、经典问题经典问题:14211421 搬寝室搬寝室Sample InputSample Input 2 1 2 1 1 31 3Sample OutputSample Output 4 42022-8-818n搬寝室是很累的,xhd深有体会.时间追述2019年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,因为10号要封楼了.看着寝室里的n件物 品,xhd开始发呆,因为n是一个小于2000的整数,实在是太

8、多了,于是xhd决定随便搬2*k件过去就行了.但还是会很累,因为2*k也不小是一个不 大于n的整数.幸运的是xhd根据多年的搬东西的经验发现每搬一次的疲劳度是和左右手的物品的重量差的平方成正比(这里补充一句,xhd每次搬两件东西,左手一件右手一件).例如xhd左手拿重量为3的物品,右手拿重量为6的物品,则他搬完这次的疲劳度为(6-3)2=9.现在可怜的xhd希望知道搬完这2*k件物品后的最佳状态是怎样的(也就是最低的疲劳度),请告诉他吧.2022-8-819第一感觉:第一感觉:n根据题目的要求,每次提的两个物根据题目的要求,每次提的两个物品重量差越小越好,是不是每次提品重量差越小越好,是不是每

9、次提的物品一定是重量相邻的物品呢?的物品一定是重量相邻的物品呢?n证明:假设四个从小到大的数:a、b、c、d,只需证明以下表达式成立即可:n(a-b)2+(c-d)2(a-c)2+(b-d)2n(a-b)2+(c-d)2=2k)nn个物品选二对,个物品选二对,2022-8-823nf(i,j)表示前j个取i对最小的疲劳度nf(i,j)=min(f(i,j-1),n f(i-1,j-2)+(item(j)-item(j-1)2n )2022-8-824五、五、经典问题经典问题:1058 1058 Humble NumbersHumble NumbersProblem Description Pr

10、oblem Description A number whose only prime factors are 2,3,5 A number whose only prime factors are 2,3,5 or 7 is called a humble number.The or 7 is called a humble number.The sequence 1,2,3,4,5,6,7,8,9,10,12,sequence 1,2,3,4,5,6,7,8,9,10,12,14,15,16,18,20,21,24,25,27,.14,15,16,18,20,21,24,25,27,.sh

11、ows the first 20 humble numbers.shows the first 20 humble numbers.Write a program to find and print the nth Write a program to find and print the nth element in this sequence element in this sequence 2022-8-825算法分析算法分析:典型的:典型的DP!n1-?n1-2=min(1*2,1*3,1*5,1*7)n1-2-3=min(2*2,1*3,1*5,1*7)n1-2-3-4=min(2*

12、2,2*3,1*5,1*7)n1-2-3-4-5=min(3 3*2,2 2*3,1*5,1*7)2022-8-826状态转移方程?状态转移方程?nF(n)=min(F(i)*2,F(j)*3,F(k)*5,F(m)*7)(ni,j,k,m)特别的:i,j,k,m 只有在本项被选中后才移动2022-8-827关键问题:关键问题:n这个题目的哪些这个题目的哪些经验值得我们借经验值得我们借鉴?鉴?2022-8-828思考:思考:免费馅饼免费馅饼 2022-8-829如何解决?如何解决?请发表见解请发表见解 2022-8-830如果各个子问题不是独立的,不同的子问题的个数只是多项式量级,如果我们能够保存已经解决的子问题的答案,而在需要的时候再找出已求得的答案,这样就可以避免大量的重复计算。由此而来的基本思路是用一个表记录所有已解决的子问题的答案,不管该问题以后是否被用到,只要它被计算过,就将其结果填入表中。小结小结:DPDP的基本思想的基本思想 2022-8-831课后任务:课后任务:ACMACM程序设计作业(程序设计作业(4 4)ACMACM程序设计程序设计 作业作业 1-31-3请补交请补交2022-8-832该该加油加油了了

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|