技术类递推求解_第1页
技术类递推求解_第2页
技术类递推求解_第3页
技术类递推求解_第4页
技术类递推求解_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、递推求解何以解忧,唯有AC! 向百度学习,向谷歌学习!Every problem has simple, fast and wrong solution. - 递推法解题 “递推法” ,其基本思想是把一个复杂的计算过程转化为简单过程的多次重复。因此又称为“迭代法”。递推分顺推和逆推两种。先来看一个超级简单的例题: (逆推)有5人坐在一起,当问第5个人多少岁,他说比第4个人大2岁,问第4个人多少岁,他说比第3个人大2岁,依此下去,问第一个人多少岁,他说他10岁,最后求第5个人多少岁?如果所坐的不是5人而是n人,写出第n个人的年龄表达式。 显然可以得到如下公式:#includevoid main(

2、)int n, age=10;cinn; /第n个人for(int i=2;i=n;i+) /用循环实现递推age = age + 2;cout第n个人的年龄是ageendl;HDOJ2013 蟠桃记 喜欢西游记的同学肯定都知道悟空偷吃蟠桃的故事,你们一定都觉得这猴子太闹腾了,其实你们是有所不知:悟空是在研究一个数学问题!什么问题?他研究的问题是蟠桃一共有多少个!不过,到最后,他还是没能解决这个难题,呵呵- 当时的情况是这样的: 第一天悟空吃掉桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第7天准备吃的时候只剩下一个桃子。聪明的你,请帮悟空算一下

3、,他第一天开始吃的时候桃子一共有多少个呢?分析: “逆推法”即顺着第7天的桃子数依次推出前面几天的。 1x6 /2-1=1x5 =10分析: 因为每天都吃尚存桃子的一半多一个。x4 =22x3 =46x2 =94x1 =190#includevoid main()int number=1;for(int day=6; day=1; day-)number=(number+1)*2;cout第1天的桃子数目是:numberendl;例 求 Fabonacci 数列前20个数(顺推) 1, 1, 2, 3, 5, 8, 13, f1 + f2 = f3 f1 f2= f3#include #inc

4、lude void main( ) int f1=1, f2=1, f3; cout setw(12) f1 setw(12) f2 ; for (int i=3; i=20; i+) f3 = f1 + f2 ; cout setw(12) f3 ; if( i%4=0 ) cout n ; f1 = f2 ; f2 = f3 ; 控制换行运行结果如下: 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 某人写了n封信和n个信封,如果所有的信都装错了信封。求所有的信都装错信封,共有多少种不同情况。 HDOJ1

5、465 不容易系列之一分析思路:1、当N=1和2时,易得解,假设F(N-1)和F(N-2)已经得到,重点分析下面的情况:4、后者简单,只能是没装错的那封和第N封交换信封,没装错的那封可以是前面N-1封中的任意一个,故= F(N-2) * (N-1)3、前者,对于每种错装,可从N-1封信中任意取一封和第N封错装,故=F(N-1)*(N-1)2、当有N封信的时候,前面N-1封信可以有N-1或者 N-2封错装得到如下递推公式:基本形式:d1=0; d2=1递归式:dn= (n-1)*( dn-1 + dn-2)这就是著名的错排公式HDOJ1297 Childrens Queue Problem De

6、scription There are many students in PHT School. One day, the headmaster whose name is PigHeader wanted all students stand in a line. He prescribed that girl can not be in single. In other words, either no girl in the queue or more than one girl stands side by side. The case n=4 (n is the number of

7、children) is likeFFFF, FFFM, MFFF, FFMM, MFFM, MMFF, MMMMHere F stands for a girl and M stands for a boy. The total number of queue satisfied the headmasters needs is 7. Can you make a program to find the total number of queue with n children?Input There are multiple cases in this problem and ended

8、by the EOF. In each case, there is only one integer n means the number of children (1=n4)然后就是对n Y;2# 青蛙从 L S;1# 青蛙从 Y S;3# 青蛙从 L Y;4# 青蛙从 L R;3# 青蛙从 Y R;1# 青蛙从 S Y;2# 青蛙从 S R;1# 青蛙从 Y R;Jump(S, y)=2*Jump(S-1, y)考虑:Jump(S, y)与Jump(S-1, y)的关系?五猴分桃(递推穷举) 五猴分桃。这是著名的物理学家狄拉克提出来的一个问题。5只猴子一起摘了一堆桃子,因为太累了,它们商量决定,先睡一觉再分。过了不知多久,来了一只猴子,它见别的猴子没来,便将这一堆桃子平均分成5份,结果多了一个。它就将多的这个吃了,拿走其中一份。又过了不知多久

温馨提示

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

评论

0/150

提交评论