题意:在整数坐标轴上找一个距离所有给定点距离最小的点。

解题关键:对x和y分别处理,前缀和预处理所有点到最小点的距离,每点的$sum$等于左边的贡献+右边的贡献,最后取$min$即可。

复杂度:$O(nlogn)$

 #include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstdlib>
#include<iostream>
#include<cmath>
using namespace std;
typedef long long ll;
const ll INF = 1ll<<-;
struct node{
ll x,y,sum;
}p[];
bool cmp1(const node &a,const node &b){
return a.x<b.x;
} bool cmp2(const node &a,const node &b){
return a.y<b.y;
}
ll dis[];
ll sum1[];
int main(){
ll t;
scanf("%I64d",&t);
while(t--){
memset(p,,sizeof p);
ll n;
scanf("%I64d",&n);
for(int i=;i<=n;i++) scanf("%I64d%I64d",&p[i].x,&p[i].y);
sort(p+,p+n+,cmp1);
for(int i=;i<=n;i++) dis[i]=p[i].x-p[].x;
for(int i = ;i <= n;i++) sum1[i]=sum1[i-]+dis[i];
for(int i=;i<=n;i++){
p[i].sum+=abs((i-)*dis[i]-sum1[i-]);
p[i].sum+=abs((sum1[n]-sum1[i])-dis[i]*(n-i));
}
sort(p+,p+n+,cmp2);
for(int i=;i<=n;i++) dis[i]=p[i].y-p[].y;
for(int i = ;i <= n;i++) sum1[i]=sum1[i-]+dis[i];
for(int i=;i<=n;i++){
p[i].sum+=abs((i-)*dis[i]-sum1[i-]);
p[i].sum+=abs((sum1[n]-sum1[i])-dis[i]*(n-i));
}
ll ma=INF;
for(int i=;i<=n;i++){
if(p[i].sum<ma){
ma=p[i].sum;
}
}
printf("%lld\n",ma);
} }

[hdu4311]Meeting point-1的更多相关文章

  1. [LeetCode] Best Meeting Point 最佳开会地点

    A group of two or more people wants to meet and minimize the total travel distance. You are given a ...

  2. [LeetCode] Meeting Rooms II 会议室之二

    Given an array of meeting time intervals consisting of start and end times [[s1,e1],[s2,e2],...] (si ...

  3. [LeetCode] Meeting Rooms 会议室

    Given an array of meeting time intervals consisting of start and end times [[s1,e1],[s2,e2],...] (si ...

  4. Scrum Meeting 20161205

    本周Sprint Master 史少帅 一. 会议概要 作为一个新的sprint的开端,本次scrum meeting总结了每个人过去以来的工作,并明确了下一步的计划,具体如下: 工作总结: · 陈双 ...

  5. Beta阶段第十次Scrum Meeting

    情况简述 BETA阶段第十次Scrum Meeting 敏捷开发起始时间 2017/1/4 00:00 敏捷开发终止时间 2017/1/5 00:00 会议基本内容摘要 deadline到来 参与讨论 ...

  6. Beta阶段第九次Scrum Meeting

    情况简述 BETA阶段第九次Scrum Meeting 敏捷开发起始时间 2017/1/2 00:00 敏捷开发终止时间 2017/1/3 00:00 会议基本内容摘要 deadline临近 参与讨论 ...

  7. Beta阶段第八次Scrum Meeting

    情况简述 BETA阶段第八次Scrum Meeting 敏捷开发起始时间 2016/12/21 00:00 敏捷开发终止时间 2016/12/22 00:00 会议基本内容摘要 deadline临近 ...

  8. Beta阶段第七次Scrum Meeting

    Beta阶段第七次Scrum Meeting 情况简述 BETA阶段第七次Scrum Meeting 敏捷开发起始时间 2016/12/20 00:00 敏捷开发终止时间 2016/12/21 00: ...

  9. Beta阶段第六次Scrum Meeting

    情况简述 BETA阶段第六次Scrum Meeting 敏捷开发起始时间 2016/12/16 00:00 敏捷开发终止时间 2016/12/17 00:00 会议基本内容摘要 平稳推进 参与讨论人员 ...

随机推荐

  1. js 检测客户端网速

    <!doctype html> <html> <head> <meta http-equiv=Content-Type content="text/ ...

  2. ASP.NET MVC4+BootStrap 实战(一)

    好久没有写关于web开发的文章了,进到这个公司一直就是winform和Silverlight,实在是没有实战web项目的机会.大D也辞职了,去搞web app了.自己也该闲暇时间多学习学习,每天进步一 ...

  3. iOS上使用自定义ttf字体

    本文转载至 http://blog.csdn.net/allison162004/article/details/38777777 项目中想使用第三方的字体,在stackoverflow上查询解决办法 ...

  4. 【BZOJ3065】带插入区间K小值 替罪羊树+权值线段树

    [BZOJ3065]带插入区间K小值 Description 从前有n只跳蚤排成一行做早操,每只跳蚤都有自己的一个弹跳力a[i].跳蚤国王看着这些跳蚤国欣欣向荣的情景,感到非常高兴.这时跳蚤国王决定理 ...

  5. php总结5——常量、文件上传

    5.1常量 系统常量: PHP_OS  操作系统 PHP_VERSION    php版本 PHP_SAPI    运行方式 自定义常量: define("常量名称"," ...

  6. python+NLTK 自然语言学习处理三:如何在nltk/matplotlib中的图片中显示中文

    我们首先来加载我们自己的文本文件,并统计出排名前20的字符频率 if __name__=="__main__": corpus_root='/home/zhf/word' word ...

  7. Java for LeetCode 081 Search in Rotated Sorted Array II

    Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this ...

  8. LeetCode:N叉树的最大深度【559】

    LeetCode:N叉树的最大深度[559] 题目描述 给定一个N叉树,找到其最大深度. 最大深度是指从根节点到最远叶子节点的最长路径上的节点总数. 例如,给定一个 3叉树 : 我们应返回其最大深度, ...

  9. 【Leetcode-easy】Roman to Integer

    罗马数字转化为整数 * 1.基本数字 Ⅰ.X .C 中的任何一个.自身连用构成数目.或者放在大数的右边连用构成数目.都不能超过三个:放在大数的左边只能用一个: * 2.不能把基本数字 V .L .D ...

  10. Spring Boot 生成接口文档 swagger2

    swagger,中文“拽”的意思.它是一个功能强大的api框架,它的集成非常简单,不仅提供了在线文档的查阅,而且还提供了在线文档的测试. 另外swagger很容易构建restful风格的api,简单优 ...