第四讲递推算法专题.ppt

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四讲递推算法专题

递推算法专题 【问题一】购买贺卡(card) 问题描述: 马上就要竞赛了,小于打算给集训队同组同学发贺卡,勉励自己和小组内同学们努力练习,力取在小组对抗赛中击败第一组,而且他已经选好了自己要购贺卡的样式。俗话货比三家,小于来到了商店,看了各个商铺这种贺卡的价钱。不仅如此,小于还记住了每个商铺的存货量。已知小于打算购买m 张贺卡,问他最少花多钱。 输入格式: 第一行有两个整数m 和n 。 其中m 表示要购买贺年卡的数量,n 表示商铺的个数。 以下n 行,每行有两个整数,分别表示该商铺这种贺年卡的单价和存货量。 输出格式: 仅一个数,表示小于所花的最少钱数。 输入样例: 10 4 4 3 6 2 8 10 3 6 输出样例: 3 6 数据规模: 0 < m ,n ≤ 1000 可以保证最后的结果在长整型范围内,商铺的总存货量不少于m 。 问题分析: 【问题三】 筛选游戏卡数学问题中的贪心算法 【问题四】 舞伴的搭配——匹配问题中的贪心算法 递推算法专题 事物总是千变万化的,在这些变化中,有些是有规律的。 这种规律往往呈现出前因和后果的关系。 也就是说,某种现象的变化结果与它前面变化的一个或一些结果紧密关联。这正体现了递推的思想。 递推关系几乎在所有的数学分支中都有重要作用。 递推: 直接从边界出发 ,利用循环逐层推进直到求出目标解的算法。 算法其基本思想是把一个复杂的庞大的计算过程转化为简单过程的多次重复,该算法充分利用了计算机的运算速度快和不知疲倦的机器等特点,它能从头开始一步步地推出问题最终的结果,按照一定的规律来计算序列中的每个项,通常是通过计算前面的一些项来得出序列中的指定项的值。 小技巧 如何看出题目采用递推算法? 1、数据规模超大,往往无法用搜索或动规方 法。 2、所给条件过少,无法模拟或枚举。 递推与递归的关系: 递推iterative 递归recursive 递推:知道第一个,推出下一个,直到达到目的。 递归:要知道第一个,需要先知道下一个,直到一个已知的,再反回来,得到上一个,直到第一个。 递推与递归的关系: 递推效率和速度高于递归 递推利用已知或已求出的结果迭代出下一步的结果;而递归则反之,要求出这一步的结果需要先去求上一步或上几步的结果(即多重迭代),往往会重复计算大量的子问题。并且递推省去了递归的栈操作。 很多递归问题可转为递推,比如乘、?Fibonacci数列等。它们的相邻数之间有着明显的规律性的变化,通常可以将递归结束的条件作为递推的初始条件,并利用这种规律性一步一步递推到结果。这种递推通常采用循环迭代的方法,如循环累乘、循环累加等。 例1 :平面分割问题 设有n条封闭曲线画在平面上,而任何两条封闭曲线恰好相交于两点,且任何三条封闭曲线不相交于同一点,问这些封闭曲线把平面分割成的区域个数。 分析:设an为n条封闭曲线把平面分割成的区域个数。 由图2可以看出:a2-a1=2;a3-a2=4;a4-a3=6。从这些式子中可以看出an-an-1=2(n-1)。 当然,上面的式子只是我们通过观察4幅图后得出的结论,它的正确性尚不能保证。下面不妨让我们来试着证明一下。当平面上已有n-1条曲线将平面分割成an-1个区域后,第n-1条曲线每与曲线相交一次,就会增加一个区域,因为平面上已有了n-1条封闭曲线,且第n条曲线与已有的每一条闭曲线恰好相交于两点,且不会与任两条曲线交于同一点,故平面上一共增加2(n-1)个区域,加上已有的an-1个区域,一共有an-1 + 2(n-1)个区域。所以本题的递推关系是: an=an-1+2(n-1) 边界条件是a1=1。 课后作业: 竞赛倒计时:43天 * * 安徽淮南师范附小 第三讲: 提问? 2、问题分析: 这是一个十分简单而又非常实际的问题。 可以将贺卡按照单价由低到高排序,然后从便宜的买起,直到达到规定的数量。 这道题虽然简单,但它体现了贪心法最根本的思想。 “ 我们买东西一定买其中最便宜的商品。” 这句话毋庸置疑是正确的,不过仔细推敲一下,如何证明这件事情呢? 下面给出一个简单的证明: 假设购买过程中,还需要再购买m 张贺卡,有s 个选择,贺年卡的单价分别是p [1 ] ,p [2 ] ,… ,p [ s ] ,其中p [1 ] ≤ p [2 ] ≤ … ≤ p [ s ] 。 设某一最优决策为选择a[1 ] ,a[2 ] ,… ,a[ m ]号商品。 我们知道,如果其中没有1 号商品,那么我们可以把a[1 ]号商品换成1 号商品而使得总价钱不会增加。 这样成功证明了至少有一个最优解是选择了1 号商

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档