可能重复:
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,飞机之间可能的最大间隔。
我不确定如何解决这个问题。有什么提示吗?
答案 0 :(得分:1)
对于第一架飞机,请选择最早的到达时间 对于最后一个飞机,选择最新的到达时间
对于元素2到元素n-1:
通过划分元素1和元素n之间的范围来搜索中点平面 (希望,这将接近元素n / 2)
recursivly为元素1和中点元素调用相同的函数 recursivly在中点元素和元素n
之后为元素调用相同的函数这将在飞机预定窗口的约束内平均分配可用时间。
一旦你有大致均匀间隔的窗口,选择最小的窗口并用它的相邻平面进行测试,看看它们是否可以移动一些以扩展最小的窗口。重复这个过程,直到最小的窗口不能移动一个很大的数量。