#1828. Oil Pipeline / 输油管道问题

Oil Pipeline / 输油管道问题

Problem : Oil Pipeline / 输油管道问题

版权信息: 某石油公司计划建造一条由东向西的主输油管道。


任务总览

任务名称 时间限制 内存限制 分数
输油管道问题 2 sec 1024 MB 10 points

题目描述

某石油公司计划建造一条由东向西的主输油管道。该管道要穿过一个有n口油井的油田。从每口油井都要有一条输油管道沿最短路径(或南或北)与主管道相连。如果给定n口油井的位置,即它们的x坐标(东西向)和y坐标(南北向),应如何确定主管道的最优位置,即使各油井到主管道之间的输油管道长度总和最小的位置?证明可在规定时间内确定主管道的最优位置。

编程任务: 给定n口油井的位置,编程计算各油井到主管道之间的输油管道最小长度总和。


输入格式

输入的第一行包含油井数n(1 ≤ n ≤ 10000)。接下来n行,每行包含两个整数x和y,表示油井的位置,其中-10000 ≤ x, y ≤ 10000。


输出格式

输出一行,表示油井到主管道之间的输油管道最小长度总和。


输入输出示例

输入示例 1

5
1 2
2 2
1 3
3 -2
3 3

输出示例 1

6

时间复杂度分析

步骤 复杂度
读取油井位置数据 O(n)
计算输油管道最小长度
总复杂度 O(n)

本题的核心在于找到最优的主管道位置,这可以通过计算中位数来达到最小的总距离。通过遍历一次数据并进行排序,可以在 O(n log n) 时间内解决。