1454. 送快递
★ 输入文件:expressc.in
输出文件:
expressc.out
简单对比
时间限制:1 s 内存限制:256 MB
【题目描述】
小x因为要计划买iphone9,需要打工来赚钱,其中有一项就是周末回学校的路上顺便送一些快递。
小x是骑单车上学的,所以每次只能送一个快递,但是在送快递中间可以将快件寄存一下,送下一个快件。(这个会在样例中解释)。
现在我们把小x上学和送快递的路线抽象成一个长度为M(1 <= M <= 1,000,000,000)米的线段。小x家在起点0米处,jzyz在M米处。小x最初有0米出发,最后必须到达M米处。
现在假设有N个快件要送(1 <= N <= 100,000),现在小x想知道,如何调配送货的过程,能让自己骑车的距离最短,且能完成任务。
【输入格式】
两个用空格分开的整数N和M。
接下来N行,每行两个整数,Si和Ti,(0 <= s_i, t_i <= M),表示送快递起始位置和终止位置。
【输出格式】
一个整数,表示小x最少的骑车距离。
【样例输入】
2 100 9 6 5【样例输出】
12【提示】
小x有两个快件要送,可以先从0米处接到快件1,送到6米处,将快件1先寄存一下,将快件2从6米处送到5米处,再回到6米处,继续快件1的送达。所以,最终移动12米就可完成快递的送达,且最后能到学校。
【数据范围】
20% 数据保证 N<=20 M<=10000
40% 数据保证 N<=1000
100% 数据如题目描述。今天的题又是焦作一中的老师出的。。。。记得我去年那次爆零就是他的题。。。贵校老师太凶残。。。。
一年不见,这个萌老师的标志性红衣不见了,但感觉逗比依旧。。。很亲民。。
这题几乎全场暴零了.....正解太神。。。大家都往DP上想去了。。。结果老师说这题其实原本想放在第一题的位置的。。普及组水平。。。题目太神。。很经典的一个类型。
首先考虑一个区间【L,R】至少是要走一遍的。。。然后对于一个决策方案,其实就是把这N个区间用某种顺序连接起来。。。
连接代价就是第I个去年的终点到第J个区间起点的距离。。。
然后我们就考虑如何使所有区间的联系代价最小,把左右端点分别排序,这样第I个起点对于第I个终点,此时的方案一定是最优。。
然后就没有然后了。。。
今天已经是第8天了,马上可以回家了。。。。。但这也意味着马上就要NOI了,又是一年,这次NOI后我就算是退役了,可能以后 就跟OI无缘了,希望HA省队的大家今年都能取得好的成绩。