day4递归分治-林厚从.pdf

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

递归分治 常州市第一中学 林厚从 JSOI2014夏令营 14-7-7 目 录 1 分治思想及举例 2 递归算法初步 3 递归算法分析 4 递归分治应用举例 JSOI2014夏令营 14-7-7 一、分治思想 例1、找伪币 [问题述] 给你一个装有16个硬币的袋子,16个硬币中有一个是伪造的,并且那个伪造的硬 币比真的硬币要轻一些。 你的任务是找出这个伪造的硬币。 为了帮助你完成这一任务,将供一台可用来比较两组硬币重量的仪器,利用 这台仪器,可以知道两组硬币的重量是否相同。 [问题分析] 方法1: 暴力枚举,依次比较硬币1与硬币2、硬币3和硬币4,……最多通过8次比较来 判断伪币的存在并找出这一伪币。 JSOI2014夏令营 14-7-7 一、分治思想 方法2: 利用二分的思想,把16个硬币的情况看成一个大问题。 第一步,把这一大问题分成两个小问题,随机选择8个硬币作为第一组,称为 A组,剩下的8个硬币作为第二组,称为B组。 第二步,判断伪币在A组还是在B组中,如果在A组中,则再把A组中的8个硬币 随机分成2组,每组4个再去比较,…… 这样,只要(必须)4次比较一定能找出伪币。 方法3: 利用三分的思想,把16个硬币分成3组(A组5个、B组5个、C组6个)。 称一次判断出伪币在A、B、C哪一组中,假如在C组中,则再把C组中的6个分成 3组(2个、2个、2个),称一次判断出在哪一组,然后再称1次就能找出伪币,…… 这样,只要2-3次比较便能找出伪币。 JSOI2014夏令营 14-7-7 一、分治思想 小结: 一是解题思想和方法的多样性,要善于比较和创新; 二是有些算法在最优和最差情况下的复杂度区别巨大,往往依赖于 输入数据或者处理的先后顺序,而有些算法的复杂度则是比较稳定的, 这一点要注意分析。 JSOI2014夏令营 14-7-7 一、分治思想 例2、循环比赛日程表 [问题述] 设有n个选手的循环比赛 (n=2^m),要求每名选手要与其他n-1名选手都赛一次。 每名选手每天比赛一次,循环赛共进行n-1天,要求每天没有选手轮空。以下是8名 选手时的循环比赛表,表中第一行为8位选手的编号,下面7行依次是每位选手每天 的对手。 JSOI2014夏令营 14-7-7 一、分治思想 [问题分析] 1 2 3 4 5 6 7 8 ——观察:对称性 2 1 4 3 6 5 8 7 3 4 1 2 7 8 5 6 ——思考:分

文档评论(0)

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

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

1亿VIP精品文档

相关文档