[GESP202412 六级] 运送物资

GESP编程共123题,本题是整站第1453题,已经有人完成了本题,加油!

题目描述

小杨管理着 m 辆货车,每辆货车每天需要向 A 市和 B 市运送若干次物资。小杨同时拥有 n 个运输站点,这些站点位于 A 市和 B 市之间。

每次运送物资时,货车从初始运输站点出发,前往 A 市或 B 市,之后返回初始运输站点。A 市、B 市和运输站点的位置可以视作数轴上的三个点,其中 A 市的坐标为 0,B 市的坐标为 x,运输站点的坐标为 p 且有 0<p<x。货车每次去 A 市运送物资的总行驶路程为 2p,去 B 市运送物资的总行驶路程为 2(x−p)。

对于第 i 个运输站点,其位置为 pi​ 且至多作为 ci​ 辆车的初始运输站点。小杨想知道,在最优分配每辆货车的初始运输站点的情况下,所有货车每天的最短总行驶路程是多少。

输入格式

第一行包含三个正整数 n,m,x,代表运输站点数量、货车数量和两市距离。

之后 n 行,每行包含两个正整数 pi​ 和 ci​,代表第 i 个运输站点的位置和最多容纳车辆数。

之后 m 行,每行包含两个正整数 ai​ 和 bi​,代表第 i 辆货车每天需要向 A 市运送 ai​ 次物资,向 B 市运送 bi​ 次物资。

输出格式

输出一个正整数,代表所有货车每天的最短总行驶路程。

输入输出样例

输入 #1

3 4 10
1 1
2 1
8 3
5 3
7 2
9 0
1 10000

输出 #1

40186

说明/提示

第 1 辆车的初始运输站点为站点 3,第 2 辆车的初始运输站点为站点 2。第 3 辆车的初始运输站点为站点 1,第 4 辆车的初始运输站点为站点 3。此时总驶路程最短,为 40186。

子任务编号 数据点占比 n s ci​
1 20% 2 2 1
2 20% ≤10^5 ≤10^5 1
3 60% ≤10^5 ≤10^5 ≤10^5

对于全部数据,保证有 1≤n,m≤10^5,2≤x≤10^8,0<pi​<x,1≤ci​≤10^5,0≤ai​,bi​≤10^5。数据保证 ∑ci​≥m。

别灰心,再试一次!

真题解析

解析:本题的核心是优化所有货车的总行驶路程,通过合理分配每辆货车的初始运输站点来实现。

为了最小化总行驶路程,我们应该尽可能让那些更频繁去A市或B市的货车从离目标城市更近的运输站点出发。具体来说:对于一辆需要更多次前往A市的货车,应该尽量安排在距离A市(坐标0)较近的运输站点。对于一辆需要更多次前往B市的货车,应该尽量安排在距离B市(坐标x)较近的运输站点。

基于上述贪心策略,我们首先对货车的需求(ai,bi)进行排序,根据(ai,bi)的值。如果ai > bi 则该货车更适合靠近A市;反之,则更适合靠近B市。

然后,我们同样对运输站点按照它们的位置pi进行排序,并尝试从两端开始分配货车到最合适的运输站点,直到所有货车都被分配完毕。

参考程序

本站题目仅供学习,GESP版权归CCF所有,如有侵权请联系删除。站长陈老师QQ及微信:208234。