acoj-1735 输油管道 【中位数】
题目链接:http://acdream.info/problem?pid=1735
输油管道
Problem Description
平面上有n个油井,现在要建立一条主干线,用来把所有的油井产出的原油都输送出去,主干线是平行于x轴的一条直线,每个油井通过一条支线把原油输送到主干线上,现在给定n个油井在平面上的坐标,那么应该把主干线建在什么地方才能让所有的支干线的总长度最小呢?

Input
Output
Sample Input
2
0 0
10 10
Sample Output
10 解题思路:取y值中位数,总干线建到中位数那口井上,总支干线长度和最小。这道题目求中位数,不需要排序,可以利用快排原理进行部分搜取就可以求出中位数了。
代码:
#include <fstream>
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstdlib> using namespace std; const int nn=;
int a[nn],n,n2,ans;
long long cnt; int quick_partition(int i,int j);
void quick_sort(int s,int t); int main(){
//freopen("D:\\input.in","r",stdin);
//freopen("D:\\output.out","w",stdout);
while(~scanf("%d",&n)){
n2=(n+)>>;
for(int i=;i<=n;i++) scanf("%*d%d",&a[i]);
quick_sort(,n);
cnt=;
for(int i=;i<=n;i++) cnt+=(long long)abs(a[i]-ans);
printf("%lld\n",cnt);
}
return ;
}
int quick_partition(int i,int j){
a[]=a[i];
while(i<j){
while(i<j&&a[j]>=a[]) j--;
if(i<j) a[i]=a[j],i++;
while(i<j&&a[i]<=a[]) i++;
if(i<j) a[j]=a[i],j--;
}
a[i]=a[];
return i;
}
void quick_sort(int s,int t){
if(s<t){
int tmp=quick_partition(s,t);
if(tmp==n2){
ans=a[tmp];
}else if(tmp<n2){
quick_sort(tmp+,t);
}else{
quick_sort(s,tmp-);
}
}else if(s==t)
ans=a[s];
}
acoj-1735 输油管道 【中位数】的更多相关文章
- acdream 1735 输油管道 贪心
输油管道 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acdream.info/problem?pid=1735 Description ...
- ACdream 1735 输油管道
输油管道 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 262144/131072KB (Java/Others) Problem Des ...
- ACdream 1735 输油管道 (排序)
http://acdream.info/problem?pid=1735 官方题解:http://acdream.info/topic?tid=4246 因为主干线是平行于x轴的直线,那么跟x坐标其实 ...
- ACdream - 1735:输油管道
Time Limit: 2000/1000MS (Java/Others) Memory Limit: 262144/131072KB (Java/Others) Problem Descriptio ...
- P1862输油管道问题
P1862输油管道问题. . . . .-----------------. . . . . .图像大体是这样,是带权平均数问题,设答案是k,sigama(abs(yi-k*wi))最小,这里的wi是 ...
- 洛谷——P1862 输油管道问题
P1862 输油管道问题 题目背景 听说最近石油危机 所以想到了这题 题目描述 某石油公司计划建造一条由东向西的主要输油管道.该管道要穿过一个有n口油井的油田.从每口油井都要有一条输油管道沿最短路径( ...
- P1862 输油管道问题
P1862 输油管道问题 题目背景 听说最近石油危机 所以想到了这题 题目描述 某石油公司计划建造一条由东向西的主要输油管道.该管道要穿过一个有n口油井的油田.从每口油井都要有一条输油管道沿最短路径( ...
- 【a202】&&【9208】输油管道问题
Time Limit: 10 second Memory Limit: 2 MB 问题描述 某石油公司计划建造一条由东向西的主输油管道.该管道要穿过一个有n 口油井的油 田.从每口油井都要有一条输油管 ...
- 洛谷 P1862 输油管道问题
题意 题目链接:P1862 输油管道问题 不难看出每个油井的 \(x\) 坐标是没用的,所以问题转化为如下. 代数意义:给出 \(n\) 个数 \(y_1,y_2,\ldots,y_n\),找一个数 ...
随机推荐
- Alpha冲刺一 (5/10)
前言 队名:拖鞋旅游队 组长博客:https://www.cnblogs.com/Sulumer/p/9989898.html 作业博客:https://edu.cnblogs.com/campus/ ...
- JSP session过期时间(小记)
以下情况,Session结束生命周期,Servlet容器将Session所占资源释放:1.客户端关闭浏览器2.Session过期3.服务器端调用了HttpSession的invalidate()方法. ...
- [置顶]
HashTable vs HashMap
转载请注明出处:http://blog.csdn.net/crazy1235/article/details/76686891 HashTable vs HashMap 构造函数 hash函数 syn ...
- ImageNet 历届冠军最新评析:哪个深度学习模型最适合你?
原文链接: https://mp.weixin.qq.com/s/I5XgYrPCCGyfV2qTI0sJhQ 深度神经网络自出现以来,已经成为计算机视觉领域一项举足轻重的技术.其中,ImageNet ...
- js:关闭当前页面
var userAgent = navigator.userAgent; if (userAgent.indexOf("Firefox") != -1 || userAgent.i ...
- html页面控制字体大小的js代码
dom对象控制显示文章字体大小的js代码 <head> <script type="text/javascript"> function check(siz ...
- sysfs中属性文件的建立
1.device中建立属性文件 (1)函数调用关系: /**************************************************************/ device_c ...
- Mysql 批量插入数据的方法
使用的方式是 MySqlBulkLoader 方法如下: 1. 转化datatable 为文件 2. 使用MySqlBulkLoader 进行数据的加载 代码: public static void ...
- CCNode的属性说明
class CC_DLL CCNode : public CCObject { protected://属性列表 float m_fRotationX; ///x轴旋转角度 float m_fRota ...
- Flash 开发环境搭建和文字滚动效果实例
Flash 开发环境搭建和文字滚动效果实例 一.Flash 开发环境搭建 Flash发布的时候可以将资源(即将库中的元件)集成到swf运行文件中.Flash没有代码自动输入补全功能,因此需要一个英文一 ...