《花生采摘》解题报告.docxVIP

  • 0
  • 0
  • 约3.1千字
  • 约 4页
  • 2022-11-21 发布于天津
  • 举报
《花生采摘》解题报告 BySX349【摘要】核心算法思想:贪心主要数据结构: 其他辅助知识: 时间复杂度:O(NlogN)空间复杂度:0(N2)【题目大意】给定一个非空矩阵,每次都从中选择一个最大值并将其从矩阵中排除,将这些取出的数排序后计算其花费(相邻两数的花费是其在矩阵之间的曼哈顿距离),求在给定最大花费下,能取到的最大值的最大总和。 【算法分析】文中说道:“你先找出花生最多的植株,去采摘它的花生;然后再找出剩下的植株里花生最多的,去采摘它的花生;依此类推,不过你一定要在我限定的时间内回到路边。”根据这一句话,我们直接就可以得出,这道题应该采用贪心的算法。 因此,我们先对数据进行从大到小的排序,然后每次都取其中的最大值。因为必须在规定的时间内回到路边,所以在每次取最大值时,首先判断在采摘了这一次之后是否有足够的时间回到路边,即(去采摘目标花生的时间)+(采摘那目标花生所用的1单位时间)+(从目标所在地往第一行的时间)=(剩下的单位时间)。若条件不满足就停止,若满足就继续采摘。 由于去摘花生必须从路边进入花生田和从花生田出来,所以我们可以先减去2个单位时间,再将剩下的时间进行模拟。 【心得体会】花生采摘是一道典型的贪心问题,也是一道典型的简单题(因此这道题的算法分析也只能这样简单了……)。但是这道题有一个区别于其他问题的地方:在解决问题的过程中,主要部分(连续取最大值)的时间复杂

文档评论(0)

1亿VIP精品文档

相关文档