北京大学ACM国际大学生程序设计竞赛课件6演示教学

上传人:youn****329 文档编号:143487143 上传时间:2020-08-30 格式:PPT 页数:25 大小:307KB
返回 下载 相关 举报
北京大学ACM国际大学生程序设计竞赛课件6演示教学_第1页
第1页 / 共25页
北京大学ACM国际大学生程序设计竞赛课件6演示教学_第2页
第2页 / 共25页
北京大学ACM国际大学生程序设计竞赛课件6演示教学_第3页
第3页 / 共25页
北京大学ACM国际大学生程序设计竞赛课件6演示教学_第4页
第4页 / 共25页
北京大学ACM国际大学生程序设计竞赛课件6演示教学_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《北京大学ACM国际大学生程序设计竞赛课件6演示教学》由会员分享,可在线阅读,更多相关《北京大学ACM国际大学生程序设计竞赛课件6演示教学(25页珍藏版)》请在金锄头文库上搜索。

1、问题求解与程序设计第六讲 动态规划,李文新 2004.2 2004.6,内容提要,3.27-4.3一周不上课做出题作业 动态规划 A decorative fence - 1037 动态规划小结 讨论 1014,动态规划,与递归程序相类,将对问题求解分解为对子问题求解;不同之处在于把子问题的解存起来,用空间换时间。 例:Fibonacci数 F(0)=0; F(1)=1; F(n)=F(n-1)+F(n-2); 递归: F(n-1)和F(n-2)分别求到底一次 动态规划:用数组将前n-1个数存起来,每次只用一个加法 Fn = Fn-1+Fn-2 即可。,问题的出处,中欧信息学奥林匹克竞赛 20

2、02年6月30日-7月6日 第一天: fence A decorative fence 时限: 1 s 内存: 1 MB,问题描述,漂亮的篱笆定义如下: 篱笆由宽度相同,高度互不相同的木条组成 组成篱笆的木条高低相间,错落有致 篱笆的长度定义为组成篱笆的木条数目N,其中木条的高度取值(不按排列顺序)分别为1,2,N。 把篱笆按其木条高度顺序记为:a1a2aN,则可以对篱笆进行字典排序,例如:,问题描述,长度为 4 的漂亮篱笆排序为:,1 2 3 4 5 6 7 8 9 10,问题描述,给定篱笆长度N和在该长度下的序号C,要求给出第C中漂亮篱笆的形状。,问题描述,样例输入: 2 2 1 3 3

3、样例输出: 1 2 2 3 1,样例解释,1,2,1,2,1,3,2,1,3,2,1,3,2,1,3,2,问题解答,问题分析 对于长度为N的漂亮篱笆,其序列为: 以高度为1的木条开始的上升序列 以高度为2的木条开始的下降序列 以高度为2的木条开始的上升序列 以高度为3的木条开始的下降序列 以高度为3的木条开始的上升序列 ,问题解答,问题分析 如果能够确定上述每一种序列的个数,就可以确定数字C落在哪个区间,从而确定其第一个木条的高度;则此时问题简化成N-1规模的问题,依照同样的方法可以确定第2个木条的高度,以此类推,可以确定所有木条的高度。,问题解答,递推公式 令 表示长度为N的漂亮篱笆中以高度

4、为i的木条开始,呈下降趋势的篱笆的个数; 令 表示长度为N的漂亮篱笆中以高度为i的木条开始,呈上升趋势的篱笆的个数; 则有公式:,问题解答,(1) (2) (3),公式解释,公式(1):以1开始的下降序列为0个 公式(2):可以由下降序列的个数推出上升序列的个数,如下图:,公式解释,i,x1,x2,x3,x4,x5,x6,x7,N+1,N-i+1,i,i,i,i,i,i,i,N-i+1,公式解释,公式(3):在以j+1开始的下降序列中,第2个木条的可能取值是1,j;以它开始的序列是上升序列,如下图:,公式解释,j+1,1,2,j,going down,going up,问题解答,根据递推公式可

5、以生成两个数组up和down数组,如下:,up,down,N=1 N=2 N=3 N=4 N=1 N=2 N=3 N=4,i=1 i=2 i=3 i=4,i=1 i=2 i=3 i=4,问题解答,对于长度为N的漂亮篱笆,可以查表得到序列: 以高度为1的木条开始的上升序列的个数n1 以高度为2的木条开始的下降序列的个数n2 以高度为2的木条开始的上升序列的个数n3 以高度为3的木条开始的下降序列的个数n4 以高度为3的木条开始的上升序列的个数n5 ,问题解答,这样就可以根据给出的序号C,判断它落在哪一个序号区间,从而得知它的第一根木条的高度,去除第一根木条,余下的问题就是一个N-1难度的问题,可以使用同样的方法求解,直到最后一根木条的高度被确定,整个问题就解决了。,问题解答,这里需要注意的是,去掉第一根木条后,余下的木条中比第一根木条高的木条的高度要减一,才是完全的N-1难度问题。,动态规划小结,递推公式 存储结构及内容定义 计算顺序 从存储结构中还原问题的解,讨论,Dividing 1014,作业,Dividing 1014 A decorative fence 1037 提高,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号