ACM ICPC编程竞争问题

时间:2011-03-23 20:23:34

标签: java

  

可能重复:
  Can you answer this 2009 ACM International Collegiate Programming Contest Finals problem?

您好,

我试图在这里做问题1 - > http://cm.baylor.edu/ICPCWiki/attach/Problem%20Resources/2009WorldFinalProblemSet.pdf

并不能真正想出一个好的算法来解决它:

基本上,有n个平面,n从标准输入读入。对于飞机可以到达的时间有n个间隔,您必须计算所有可能的平面之间的最大间隔。所以,说

n = 3

,您将获得输入

0 10
5 15
10 15

答案是:7:30,飞机之间可能的最大间隔。

我不确定如何解决这个问题。有什么提示吗?

1 个答案:

答案 0 :(得分:1)

对于第一架飞机,请选择最早的到达时间 对于最后一个飞机,选择最新的到达时间

对于元素2到元素n-1:

通过划分元素1和元素n之间的范围来搜索中点平面    (希望,这将接近元素n / 2)

recursivly为元素1和中点元素调用相同的函数    recursivly在中点元素和元素n

之后为元素调用相同的函数

这将在飞机预定窗口的约束内平均分配可用时间。

一旦你有大致均匀间隔的窗口,选择最小的窗口并用它的相邻平面进行测试,看看它们是否可以移动一些以扩展最小的窗口。重复这个过程,直到最小的窗口不能移动一个很大的数量。