【发布时间】:2016-01-09 18:51:33
【问题描述】:
在解决 codechef 问题时,我想出了一个算法来使用分而治之的方法来解决问题,根据我的算法,我们在数组中找到最大值并将我们的数组分成两部分(一个从开始到Max 元素和另一半从 Max 元素的下一个到数组的末尾),然后我们使用:Max +(n-1)找到数组的第一部分(与 Max elemeny 竞争的部分)的初始速度其中 n 是数组该部分中的元素数 .... 我们对数组的每个部分都执行此操作,并且在计算每个部分的初始速度之后,我们检查数组的一部分的初始速度是否小于或等于 Max + 1 其中 Max 是考虑中的部分之前的数组部分的最大元素,如果是这种情况,我们什么也不做,我们找出 Max + 1 和初始速度之间的差异并添加与 th 之前部分的初始速度之差e 部分正在考虑中,我们会不断重复此过程,直到不再需要更改为止。 现在这个算法肯定会工作,但它会超过时间限制..当我看到社论时,它有这个问题的一条线解决方案..有人可以向我解释那个解决方案,我无法理解。 提前致谢。
【问题讨论】:
标签: explain