Time Limit: 10 second

Memory Limit: 2 MB

问题描述

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

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

Input

由文件input.txt 提供输入数据。文件的第1 行是油井数n,1≤n≤10000。接下来n 行是 油井的位置,每行2个整数x和y,-10000≤x,y≤10000。

Output

程序运行结束时,将计算结果输出到文件output.txt 中。文件的第1 行中的数是油井到 主管道之间的输油管道最小长度总和。

Sample Input

5

1 2

2 2

1 3

3 -2

3 3

Sample Output

6

【题目链接】:http://noi.qz5z.com/viewtask.asp?id=9208

【题解】



把所有的点按照y轴升序排;

然后取中位数(n+1)/2;

这个下标作为中位数d;然后把所有的点的纵坐标减去该d的绝对值累加到答案里就是最终答案了;



【完整代码】

#include <cstdio>
#include <algorithm> using namespace std; const int MAXN = 1e4+100; struct abc
{
int x,y;
}; int n;
abc a[MAXN]; bool cmp(abc a,abc b)
{
return a.y < b.y;
} int main()
{
//freopen("F:\\rush.txt","r",stdin);
scanf("%d",&n);
for (int i = 1;i <= n;i++)
scanf("%d%d",&a[i].x,&a[i].y);
sort(a+1,a+1+n,cmp);
int mid = (n+1)/2;
int ans = 0;
for (int i = 1;i <= n;i++)
ans += abs(a[i].y-a[mid].y);
printf("%d\n",ans);
return 0;
}

【a202】&&【9208】输油管道问题的更多相关文章

  1. P1862输油管道问题

    P1862输油管道问题. . . . .-----------------. . . . . .图像大体是这样,是带权平均数问题,设答案是k,sigama(abs(yi-k*wi))最小,这里的wi是 ...

  2. acoj-1735 输油管道 【中位数】

    题目链接:http://acdream.info/problem?pid=1735 输油管道 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 2 ...

  3. Vijos / 题库 / 输油管道问题

    背景 想念car的GF,car就出了道水题! 描述 某石油公司计划建造一条由东向西的主输油管道.该管道要穿过一个有n 口油井的油田.从每口油井都要有一条输油管道沿最短路经(或南或北)与主管道相连.如果 ...

  4. acdream 1735 输油管道 贪心

    输油管道 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://acdream.info/problem?pid=1735 Description ...

  5. 洛谷——P1862 输油管道问题

    P1862 输油管道问题 题目背景 听说最近石油危机 所以想到了这题 题目描述 某石油公司计划建造一条由东向西的主要输油管道.该管道要穿过一个有n口油井的油田.从每口油井都要有一条输油管道沿最短路径( ...

  6. P1862 输油管道问题

    P1862 输油管道问题 题目背景 听说最近石油危机 所以想到了这题 题目描述 某石油公司计划建造一条由东向西的主要输油管道.该管道要穿过一个有n口油井的油田.从每口油井都要有一条输油管道沿最短路径( ...

  7. ACdream 1735 输油管道

    输油管道 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 262144/131072KB (Java/Others)   Problem Des ...

  8. 洛谷 P1862 输油管道问题

    题意 题目链接:P1862 输油管道问题 不难看出每个油井的 \(x\) 坐标是没用的,所以问题转化为如下. 代数意义:给出 \(n\) 个数 \(y_1,y_2,\ldots,y_n\),找一个数 ...

  9. ACdream 1735 输油管道 (排序)

    http://acdream.info/problem?pid=1735 官方题解:http://acdream.info/topic?tid=4246 因为主干线是平行于x轴的直线,那么跟x坐标其实 ...

随机推荐

  1. 详解javascript的深拷贝与浅拷贝

    1. 认识深拷贝和浅拷贝 javascript中一般有按值传递和按引用传递两种复制,按值传递的是基本数据类型(Number,String,Boolean,Null,Undefined),一般存放于内存 ...

  2. VMware Windows安装详细过程(详细图解)

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 一.概论 简介:虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的.运行在一个完全隔离环境中的完整计算 ...

  3. Day2:字典

    一.定义 字典是一种“key-value”成对出现的数据类型,中间用冒号把key与value隔,不同的数据用逗号隔开,全部数据用大括号括起来 info = { 'stu1101': "Ten ...

  4. Android滑动到顶部悬停

    无图说卵,先上图 jianshu-top.gif 查阅资料后,发现网上大部分都是用这种方法实现的: 多写一个和需要悬浮的部分一模一样的layout,先把浮动区域的可见性设置为gone.当浮动区域滑动到 ...

  5. Oracle 12CR2 中alert.log出现大量的 WARNING: too many parse errors 告警

    Oracle 12CR2 中alert.log出现大量的 WARNING: too many parse errors 告警   日志如下: 2018-06-24T17:16:21.024586+08 ...

  6. windows+python3+opencv3.4安装

    1.安装anaconda. 2.pip install opencv-python 网上很多关于python opencv安装说明,步骤极其繁琐,其实按照本说明只需两步就可安装完成.

  7. 126邮件POP3,SMTP服务器与端口设置

  8. Android 底部TabActivity(0)——开篇(界面分析|系列文章文件夹)

    当下主流的软件没有一个统一明白的风格,App框架什么样的都有,但个人钟情于页面底部Tab分签架构,移动设备的屏幕尽管越来越大,可是显示的内容还是有限,为了能展示很多其它的内容,方便简洁的操作习惯中Ta ...

  9. aspcms产品详情页调取相关产品

    产品详情页调用相关产品最常见的应用就是装饰公司网站,设计师页面要求调取设计师做过的案例.aspcms本身有这个功能,但不能完全符合要求,看代码 {aspcms:content sort={aspcms ...

  10. Python中字符串的解压缩

    今天在用Streaming-Python处理一个MapReduce程序时,发现reducer失败,原由于耗费内存达到极限了.细致查看代码时,发现有一个集合里保存着URL,而URL长度是比較长的,直接保 ...