《2竞赛培训算法和数据结构.docVIP

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《2竞赛培训算法和数据结构

信息技术竞赛培训教程 目录 第三部分 算法和数据结构综合应用 广度优先搜索 深度优先搜索 数值计算问题 递推与迭代法 递归与回溯 穷举法 贪心算法 动态规划法 分治法 最短路径问题 背包问题 关键路径 最优路径 第三部分 算法与数据结构综合应用 数值计算问题: 1、打印所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数字本身,例如: 2、一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如:6的因子为1、2、3,而6=1+2+3,因此6是“完数”。编程序找出1000以内的所有完数。 3、有一分数序列:求出这个数列的前20项的和。(32.660259) 4、求之值,其中a是一个数字。例如:(当n=5时),n由键盘输入。 5、已知四位数3025有一个待殊性质:它的前两位数字30和后两位数字25的和是55,而55的平方刚好等于该数(552=3025)。试编一程序打印具有这种性质的所有四位数。 分析:从32至99之间的数的平方是四位数,满足题目条件的数必须在这些四位数之内选择。分别把它们按前两位数后两位数进行分离,验证分离后的两个两位数之和的平方是否等于分离前的那个四位数,若等于即打印输出,否则放弃。 6、求两个自然数,其和是667,最小公倍数与最大公约数之比是120:1。(例如:115,552) 迭代法 例题: 用二分法求方程在区间(0,3)之间的一个解。 算法提示:二分法是用计算机求解多项式方程的一中常用方法。基本思想是:,如果和的符号相反,那么在(x1,x2)之间一定存在一个数使f(x)=0即方程的一个解。取x1,x2的中点r,如果f(r)与f(x1)异号,解肯定在(x1,r)之间,否则解在(r,x2)之间,重复直到|f(r)|e0,e0是一个很小的数,通过这种方法能够求出,方程f(x)=0的一个近似解r,误差在e0内。 穷举搜索法 穷举法也叫枚举法,它的基本思想是依题目的部分条件确定答案的大致范围,在此范围内对所有可能的情况逐一验证,直到全部情况验证完。若某个情况经验证符合题目的全部条件,则为本题的一个答案。若全部情况经验证后都不符合题目的全部条件,则本题无答案。 用穷举法解题时,答案所在的范围总是要求是有限的,怎样才能使我们不重复的、一个不漏、一个不增的逐个列举答案所在范围的所有情况,就是本节所讲的“列举方法”。 列举方法按答案的数据类型,常用的有下面三种。 顺序列举:顺序列举是指答案范围内的各种情况很容易与自然数对应甚至就是自然数,可以按自然数的变化顺序去列举。 排列列举:有时答案的数据形式是一组数的排列,列举出所有答案所在范围内的排列,称为排列列举。 组合列举:(参考组合数学知识)当答案的数据形式为一些元素的组合时,往往需要用组合列举。从几个不同的元素中任取m(mn)个元素组成的一组,就叫做从n个元素取m个元素的一个组合。组合是无序的,如:123,132,321,312,213,231是同一个组合(但是6个不同的排列)。 例题: 【问题提出】 找出n个自然数(1,2,3,4,…n)中r个数的组合。例如n=3,r=2,所有的组合为:12,13,23;n=5,r=3,所有的情况为:123,124,125,134,135,145,234,235,245,345。 【算法】 当r=3时用3重循环实现。 for I=5 to1 for j=5 to1 for k=5 to 1 if Ij AND I!=k AND jK AND Ij AND jk print I,j,k 练习: 1、求出具有下列两个性质的最小自然数n: (1)、n是个6位数 (2)、若将n的各位数移到其余各位之前,所得的新数是n的4倍。 递推法: 例题: 运动会连续开了n天,一共发了m枚奖章,第一天发1枚并剩下(m-1)枚的1/7,第二天发2枚并剩下的1/7,以后每天按规律发放奖章,在最后一天即第n天发剩下的n枚奖章。问运动会一共开了多少天?一共发了几枚奖章? 贪心算法 算法思想 贪心法的基本思路: ——从问题的某一个初始解出发逐步逼近给定的目标,以尽可能快的地求得更好的解。当达到某算法中的某一步不能再继续前进时,算法停止。 该算法存在问题: 1. 不能保证求得的最后解是最佳的; 2. 不能用来求最大或最小解问题; 3. 只能求满足某些约束条件的可行解的范围。 实现该算法的过程: 从问题的某一初始解出发; while 能朝给定总目标前进一步 do   求出可行解的一个解元素; 由所有解元素组合成问题的一个可行解; 例题分析 1、[背包问题]有一个背包,背包容量是M=150。有7个物品,物品可以分割成任意大小。 要求尽可能让装入背包中的物品总价值最大,但不能超过总

文档评论(0)

wangz118 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档