输油管道问题
来源:互联网 发布:网络图像文件的格式 编辑:程序博客网 时间:2024/05/29 19:31
题目描述
某石油公司计划建造一条由东向西的主输油管道。该管道要穿过一个有n 口油井的油田。从每口油井都要有一条输油管道沿最短路经(或南或北)与主管道相连。如果给定n口油井的位置,即它们的x 坐标(东西向)和y 坐标(南北向),应如何确定主管道的最优位置,即使各油井到主管道之间的输油管道长度总和最小的位置? 给定n 口油井的位置,编程计算各油井到主管道之间的输油管道最小长度总和。
输入
第一行为油井的数量n,1<=n<=10000。接下来n行是油井的位置,每行两个整数x和y,-10000<=x<=10000
输出
最小长度和
思路
排序然后找到中位数,答案是中位数减每一个数的绝对值
const maxn=100000;var a:array[1..maxn] of longint; i,n,x,s:longint;procedure qsort(l,r:longint); var i,j,key,temp:longint; begin if l>=r then exit; i:=l;j:=r; key:=a[l+random(r-l+1)]; repeat while (a[i]<key) do inc(i); while (a[j]>key) do dec(j); if i<=j then begin temp:=a[i];a[i]:=a[j];a[j]:=temp; inc(i);dec(j); end; until i>j; qsort(l,j); qsort(i,r); end;begin readln(n); for i:=1 to n do read(x,a[i]); randomize; qsort(1,n); x:=n div 2+1; for i:=1 to n do s:=s+abs(a[x]-a[i]); writeln(s);end.
1 0
- 输油管道问题
- 输油管道问题
- 输油管道问题
- 输油管道问题
- 输油管道问题
- 输油管道问题
- 输油管道问题
- 输油管道问题
- 输油管道问题
- 输油管道问题
- 输油管道问题
- 输油管道问题
- 输油管道问题
- 南邮-1206-输油管道问题
- 中位数-输油管道问题
- 输油管道问题-分治
- 【a202】&&【9208】输油管道问题
- 输油管道问题 分治算法
- Java-IO之InputStreamReader和OutputStreamWriter
- 10进制转化为16进制
- java基础——集合讲解
- 聚类算法实现
- CSU 1581 hash
- 输油管道问题
- 关于c++函数传递参数和返回参数的一些详细过程
- 素数的判断和输出
- Shell学习笔记
- 文章标题
- Java-IO之FileReader和FileWriter
- Html布局中简单的table的制作方法
- 最佳浏览路线问题
- less与sass的区别与联系