贪心和分治试卷.pptVIP

  • 100
  • 0
  • 约2.31千字
  • 约 19页
  • 2017-07-07 发布于湖北
  • 举报
ACM中期培训 讲解人:李川皓 制作人:曾卓敏 哈尔滨理工大学ACM集训队 贪心和分治 贪心: 贪心,顾名思义贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。当然,贪心算法得到的最终结果也是整体最优的。 贪心只是一种思想,我们举几个例子来说明一下~ 事件序列问题 已知N个事件的发生时刻和结束时刻(见下表,表中事件已按结束时刻升序排序)。一些在时间上没有重叠的事件,可以构成一个事件序列,如事件{2,8,10}。事件序列包含的事件数目,称为该事件序列的长度。请编程找出一个最长的事件序列。 策略:尽可能选择结束时间早的-先排序 分析:由于输入的活动以其完成时间的非减序排列,所以算法每次总是选择具有最早完成时间的相容活动加入集合A中。直观上,按这种方法选择相容活动为未安排活动留下尽可能多的时间。也就是说,该算法的贪心选择的意义是使剩余的可安排时间段极大化,以便安排尽可能多的相容活动。 算法的效率:用O(nlogn)的时间排序。然后用O(n)的时间来安排n个活动 事件序列问题 一般贪心的题目都要进行对某一属性的排序工作 例题1:n个人排队接水,编号为1到n,每个人的接水时间为Ti,请编程找出这n个人的排队序列(接水时间一样的按照他们的编号排队),使得他们的平均等待接水时间最小。 1 = n

文档评论(0)

1亿VIP精品文档

相关文档