中等硬度解题报告.docxVIP

  • 9
  • 0
  • 约2.54千字
  • 约 2页
  • 2017-09-27 发布于广东
  • 举报
中等硬度解题报告[摘要]中等硬度是IOI2000第一试的最后一道题目。这道题主要考察选手的创造性,自创算法正确高效的解决问的能力。本文主要讲述我做这到题目的过程和方法。[关键字]二分法随机数[问题描述]见附件[问题分析]算法1-1:由于每次比较可以得出最大的数和最小的数(虽然不知道那个数最大的),所以可以先求出1,2,3号中的最大与最小者,再用它们与4号比较得出1~4号中的最大最小者,再用这两个数与5号比……。以此类推,可求出1~n中的最大与最小者,显然它们不是中等硬度物体,所以将它们去掉,再用上述方法求出剩下n-2中的最大与最小者,再去掉,……,最后剩下的一个数就是中等硬度的物体编号。这个算法比较的复杂度为,不满足1449个物体用7777次比较出来的限制。究其原因是因为每次比较利用的信息不够。一次比较三个数,可以知道这三个数的顺序关系(虽然不知道是递增还是递减),若已知两个数的顺序关系,再与第三个数比较,则可知道第三个数在前两个数的顺序关系下的位置。算法1-1中正是没有利用这个信息,导致复杂度高。所以利用这个排序的观点,得出算法2-1。算法2-1:已知前m个物体硬度的顺序关系。将下一个物体用二分法插入到适当的位置,得出前m+1个物体硬度的顺序关系。以此类推得出n个物体的顺序关系,从而知道中等硬度者。参看实例:Label12345Strength25431插入物体编号已知顺序比较返

文档评论(0)

1亿VIP精品文档

相关文档