HDUACM版03递推求解_第1页
HDUACM版03递推求解_第2页
HDUACM版03递推求解_第3页
HDUACM版03递推求解_第4页
HDUACM版03递推求解_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、acm程序设计程序设计11/2/20212今天,今天,你你 了吗?了吗?ac11/2/20213每周一星(每周一星(2):):hoxilyhoxily11/2/20214第三讲第三讲递推求解递推求解11/2/20215先来看一个先来看一个超级超级简单的简单的例题例题:n有5人坐在一起,当问第5个人多少岁,他说比第4个人大2岁,问第4个人多少岁,他说比第3个人大2岁,依此下去,问第一个人多少岁,他说他10岁,最后求第5个人多少岁?n如果所坐的不是5人而是n人,写出第n个人的年龄表达式。 11/2/2021622)1(110)(nnfnnf显然可以得到如下公式显然可以得到如下公式: :化简后的公式

2、:f(n)=10+(n-1)*211/2/20217fibnacci fibnacci 数列:数列:2120121nffnnfnnn即:1、2、3、5、8、13、21、3411/2/20218思考思考: :n递推公式的意义?n有了公式,人工计算的方法?n常见的编程实现方法?(优缺点?)11/2/20219简单思考题简单思考题: :n在一个平面上有一个圆和在一个平面上有一个圆和n n条直线,条直线,这些直线中每一条在圆内同其他直这些直线中每一条在圆内同其他直线相交,假设没有线相交,假设没有3 3条直线相交于条直线相交于一点,试问这些直线将圆分成多少一点,试问这些直线将圆分成多少区域。区域。11/

3、2/202110是不是这个是不是这个f(1)=2; f(n) = f(n-1)+n;化简后:f(n) = n(n+1)/2 +1;11/2/202111太简单了太简单了? ?来个稍微麻烦一些的来个稍微麻烦一些的11/2/202112例例: :(20502050)折线分割平面)折线分割平面问题描述问题描述: 平面上有平面上有n n条折线,问这些折线最多能将平面分割条折线,问这些折线最多能将平面分割成多少块成多少块? ?样例输入样例输入1 12 2样例输出样例输出2 27 711/2/202113思考思考: :如何用递推解决如何用递推解决? ?结论结论f(n)=f(n-1)+4(n-1)+1f(n

4、)=f(n-1)+4(n-1)+111/2/202114另外一种结论另外一种结论: :nzn = 2n ( 2n + 1 ) / 2 + 1 - 2nzn = 2n ( 2n + 1 ) / 2 + 1 - 2n= 2 n2 n + 1= 2 n2 n + 1为什么为什么? ?11/2/202115总结:递推求解的基本方法:总结:递推求解的基本方法:n首先,确认:能否容易的得到简单情况的解?首先,确认:能否容易的得到简单情况的解?n然后,假设:规模为然后,假设:规模为n-1n-1的情况已经得到解决。的情况已经得到解决。n最后,重点分析:当规模扩大到最后,重点分析:当规模扩大到n n时,如何枚时

5、,如何枚举出所有的情况,并且要确保对于每一种子举出所有的情况,并且要确保对于每一种子情况都能用已经得到的数据解决。情况都能用已经得到的数据解决。n强调:强调:1 1、编程中的空间换时间的思想、编程中的空间换时间的思想2 2、并不一定只是从、并不一定只是从n-1n-1到到n n的分析的分析11/2/202116问题的提出:问题的提出: 设有设有n n条封闭曲线画在平面上,而任条封闭曲线画在平面上,而任何两条封闭曲线恰好相交于两点,且任何何两条封闭曲线恰好相交于两点,且任何三条封闭曲线不相交于同一点,问这些封三条封闭曲线不相交于同一点,问这些封闭曲线把平面分割成的区域个数。闭曲线把平面分割成的区域

6、个数。思考题:平面分割方法思考题:平面分割方法11/2/202117f(1)=2f(1)=2f(n)=f(n-1)+2(n-1)f(n)=f(n-1)+2(n-1)简单分析简单分析11324123465781234567108911121314n=1n=1n=2n=2n=3n=3n=4n=4211/2/202118在在2 2n n的长方形方格中的长方形方格中, ,用用n n个个1 12 2的骨牌铺满方格的骨牌铺满方格, ,例如例如n=3n=3时时, ,为为2 23 3方格,骨牌的铺放方案有三种方格,骨牌的铺放方案有三种( (如如图图), ), 输入输入n ,n ,输出铺放方案的总数输出铺放方案

7、的总数思考题(思考题(20462046):):11/2/202119有有1 1n n的一个长方形,用的一个长方形,用1 11 1、1 12 2、1 13 3的骨牌铺的骨牌铺满方格。例如当满方格。例如当n=3n=3时为时为1 13 3的方格(如图),此时用的方格(如图),此时用1 11 1,1 12 2,1 13 3的骨牌铺满方格,共有四种铺法。的骨牌铺满方格,共有四种铺法。 输入:输入: n n(0=n=300=n3)f(n)=f(n-1)+f(n-2)+f(n-4) (n3)然后就是对然后就是对n=3 n=3 的一些特殊情况的处理了,的一些特殊情况的处理了,显然:显然:f(0)=1f(0)=

8、1 ( (没有人也是合法的,这个可以特没有人也是合法的,这个可以特殊处理,就像殊处理,就像0 0的阶乘定义为的阶乘定义为1 1一样一样) ) f(1)=1f(1)=1 f(2)=2 f(3)=4f(2)=2 f(3)=411/2/202127不容易系列之不容易系列之(3)(3) lele lele的的rpgrpg难题难题有排成一行的个方格,用红有排成一行的个方格,用红(red)(red)、粉、粉(pink)(pink)、绿、绿(green)(green)三色涂每个格子,每格涂三色涂每个格子,每格涂一色,要求任何相邻的方格不能同色,且首一色,要求任何相邻的方格不能同色,且首尾两格也不同色求全部的

9、满足要求的涂法尾两格也不同色求全部的满足要求的涂法. .附加题(看看效果):附加题(看看效果):11/2/202128某人写了n封信和n个信封,如果所有的信都装错了信封。求所有的信都装错信封,共有多少种不同情况。 附加题:附加题:14651465不容易系列之一不容易系列之一11/2/202129分析思路:分析思路:1 1、当、当n=1n=1和和2 2时,易得解,假设时,易得解,假设f(n-1)f(n-1)和和f(n-2)f(n-2)已经得到,重点分析下面的情况:已经得到,重点分析下面的情况:4 4、后者简单,只能是没装错的那封和第、后者简单,只能是没装错的那封和第n n封封交换信封,没装错的那

10、封可以是前面交换信封,没装错的那封可以是前面n-1n-1封中的任意一个,故封中的任意一个,故= f(n-2) = f(n-2) * * (n-1) (n-1)3 3、前者,对于每种错装,可从、前者,对于每种错装,可从n-1n-1封信中任封信中任意取一封和第意取一封和第n n封错装,故封错装,故=f(n-1)=f(n-1)* *(n-1)(n-1)2 2、当有、当有n n封信的时候,前面封信的时候,前面n-1n-1封信可以有封信可以有n-1n-1或者或者 n-2n-2封错装封错装11/2/202130得到如下递推公式:得到如下递推公式:基本形式:d1=0; d2=1递归式:dn= (n-1)*( dn-1 + dn-

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论