jzoj2248 送快递 (很鸡儿巧的题)

(我都不好意思说这是普及组的题了)

    Petya和Vasya被聘为快递员。在工作日期间,他们将提供包裹到线上的不同点。根据公司的内部规定,包裹的交付必须严格按照一定的顺序进行。最初,Petya处于坐标s1的点,Vasya位于坐标s2的点,n个顾客所需访问的顺序位于点x1,x2,...,xn。
    这些人预先同意他们谁将交付给哪些客户,然后他们的行为如下。当第i个客户端的包裹被交付时,两个快递员中的其中一个负责去送第i+1个。此时不送快递员的那个原地不动。即快递是严格按照顾客顺序一个个在送的,一个快递员在送的时候,另一个快递员是不动的。
     由于要相互沟通,这些家伙有对讲机。对讲机的工作距离不是很远,所以Petya和Vasya想在送快递的时候,使得他们的最大距离尽可能低。帮助Petya和Vasya尽量减少他们之间的最大距离,遵守所有交货规则。

对于100%的数据,n<=100000

智商忽然下线 很显然要二分最大距离然后判定.
假设现在送到第i个地方,那么肯定有一个人待在x[i]这里 .
存下另一个人可能的位置
那么现在考虑从一个确定的位置和一堆可能的位置 送下一个快递

若x[i-1] -> x[i]这段距离不超过m,则有两种选择:
当前确定位置的那个人送(另一个人可能位置不变,不加入x[i-1])
或者
不确定位置的那个人送 (去掉之前所有,加入x[i-1]).
两种可能拼起来就是在原本基础上加入x[i-1].

最后由确定位置可以得到另一个人位置的上下界,不符合的用数据结构筛掉即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值