因为曼哈顿距离很好求,所以要把每个点的坐标转换一下。

  转自:http://blog.csdn.net/slongle_amazing/article/details/50911504

  题解

  

两个点的切比雪夫距离为d=max(|x1−x2|,|y1−y2|)
    写一下曼哈顿距离的常用处理方法
  两个点(x1,y2),(x2,y2)

  其曼哈顿距离=|x1−x2|+|y1−y2|
  因为|x1−x2|=max(x1−x2,x2−x1)
  所以可以写成=max(x1−x2+y1−y2,x1−x2+y2−y1,x2−x1+y1−y2,x2−x1+y2−y1)

  =max((x1+y1)−(x2+y2),(x1−y1)−(x2−y2),−(x1−y1)+(x2−y2),−(x1+y1)+(x2+y2))

  =max(|(x1+y1)−(x2+y2)|,|(x1−y1)−(x2−y2)|)

  令x′=x+y,y′=x−y=max(|x′1−x′2|,|y′1−y′2|)

  这样曼哈顿距离就被转化为了切比雪夫距离
  同理,我们把切比雪夫距离转化为曼哈顿距离(x,y)=((x+y)/2,(x−y)/2)
  就转化为了n−1个点到一个点的曼哈顿距离最小
  计算曼哈顿距离x和y分开计算即可

  

 #include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#define ll long long
#define N 100005
using namespace std;
int n;
struct node
{
int x,y,id;
friend bool operator < (node aa,node bb)
{
return aa.x<bb.x;
}
}a[];
ll ans[N],sum[N];
bool cmp(node aa,node bb)
{
return aa.y<bb.y;
}
int main()
{
scanf("%d",&n);int t1,t2;
for(int i=;i<=n;i++)
{
scanf("%d%d",&t1,&t2);
a[i].x=t1+t2;a[i].y=t1-t2;a[i].id=i;
}
sort(a+,a+n+);
for(int i=;i<=n;i++)sum[i]=sum[i-]+a[i].x;
for(int i=;i<=n;i++)
{
ans[a[i].id]+=(ll)a[i].x*(i-)-sum[i-];
ans[a[i].id]+=(sum[n]-sum[i])-((ll)a[i].x*(n-i));
}
sort(a+,a+n+,cmp);
for(int i=;i<=n;i++)sum[i]=sum[i-]+a[i].y;
for(int i=;i<=n;i++)
{
ans[a[i].id]+=(ll)a[i].y*(i-)-sum[i-];
ans[a[i].id]+=(sum[n]-sum[i])-((ll)a[i].y*(n-i));
}
ll mx=1ll<<;
for(int i=;i<=n;i++)mx=min(mx,ans[i]);
printf("%lld\n",mx/);
return ;
}

bzoj 3170 Tjoi 2013 松鼠聚会 曼哈顿距离&&切比雪夫距离的更多相关文章

  1. Bzoj 3170[Tjoi 2013]松鼠聚会 曼哈顿距离与切比雪夫距离

    3170: [Tjoi 2013]松鼠聚会 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1318  Solved: 664[Submit][Stat ...

  2. BZOJ 3170: [Tjoi 2013]松鼠聚会 切比雪夫距离

    3170: [Tjoi 2013]松鼠聚会 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/p ...

  3. BZOJ 3170: [Tjoi 2013]松鼠聚会( sort )

    题目的距离为max(|x1-x2|, |y1-y2|) (切比雪夫距离). 切比雪夫距离(x, y)->曼哈顿距离((x+y)/2, (x-y)/2) (曼哈顿(x, y)->切比雪夫(x ...

  4. bzoj 3170: [Tjoi 2013]松鼠聚会

    #include<cstdio> #include<iostream> #include<algorithm> #define M 100008 using nam ...

  5. bzoj-3170 3170: [Tjoi 2013]松鼠聚会(计算几何)

    题目链接: 3170: [Tjoi 2013]松鼠聚会 Time Limit: 10 Sec  Memory Limit: 128 MB Description 有N个小松鼠,它们的家用一个点x,y表 ...

  6. 3170: [Tjoi 2013]松鼠聚会

    题目大意 给定n个点,找到一个点使这个点到其他所有点的切比雪夫距离之和最小. 题解 我们知道切比雪夫距离和曼哈顿距离的转化公式 \(1\)表示切比雪夫距离,\(2\)表示曼哈顿距离 我们有: \(x_ ...

  7. [Tjoi 2013]松鼠聚会

    3170: [Tjoi 2013]松鼠聚会 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1318  Solved: 664[Submit][Stat ...

  8. BZOJ3170: [Tjoi 2013]松鼠聚会

    3170: [Tjoi 2013]松鼠聚会 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 531  Solved: 249[Submit][Statu ...

  9. 【bzoj3170】[Tjoi 2013]松鼠聚会 旋转坐标系

    题目描述 有N个小松鼠,它们的家用一个点x,y表示,两个点的距离定义为:点(x,y)和它周围的8个点即上下左右四个点和对角的四个点,距离为1.现在N个松鼠要走到一个松鼠家去,求走过的最短距离. 输入 ...

随机推荐

  1. Spark概述及集群部署

    Spark概述 什么是Spark (官网:http://spark.apache.org) Spark是一种快速.通用.可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010 ...

  2. MySQL基础练习(三)

    经过之前两次的学习,这次用MySQL进行略微复杂的操作练习 各部门工资最高的员工 首先创建表employee和表department.如下 我们需要查询每个部门工资最高的员工 select a.Nam ...

  3. [BUAA OO]第二次博客作业

    第五次作业 这次作业是电梯系列作业的终极版,要求是使用多线程实现三部电梯的运行.这次作业的难点在于第一次运用多线程技术,对于线程中的行为并不了解,以及电梯功能的实现(如果之前作业采取的是扫描指令队列预 ...

  4. 实验五 — — Java网络编程及安全

    java的第五个实验——Java网络编程及安全 北京电子科技学院 实     验    报     告 课程:Java程序设计 班级:1352 姓名:林涵锦 学号:20135213    成绩:    ...

  5. linux下创建virtualenv时指定python版本

    virtualenv是python开发中一个重要的工具,它可以帮助我们创建一个干净的python解释环境,创建虚拟环境时,这个虚拟环境的python版本往往是系统默认的2.x版本.别急,我们只需要一条 ...

  6. 2018软工实践—Beta冲刺(5)

    队名 火箭少男100 组长博客 林燊大哥 作业博客 Beta 冲鸭鸭鸭! 成员冲刺阶段情况 林燊(组长) 过去两天完成了哪些任务 协调组内工作 协助数据库完善搭建 展示GitHub当日代码/文档签入记 ...

  7. The last time the sprint(最后一个冲刺)

    经过一两个月的努力,我们终于是做出来了一点东西,从一开始接触这个项目开始,从完全不知道怎么去入手到跌跌碰碰,再到现在可以拿出来一点东西给别人看,我觉得很开心,或许我的这个成品在别人眼中并不算是什么,但 ...

  8. 信息安全C散列函数的应用及其安全性2016011992

    1:散列函数的具体应用 使用一个散列函数可以很直观的检测出数据在传输时发生的错误. MD5 Hash算法的"数字指纹"特性,使它成为目前应用最广泛的一种文件完整性校验(Checks ...

  9. ns-3 可视化模拟 (一) PyViz

    PyViz 个人觉得这个的使用简单. (1)首先安装 这是ubuntu下的 sudo apt-get install python-dev python-pygraphviz python-kiwi ...

  10. Ubuntu16.04 下虚拟环境的创建与使用

    1. 虚拟环境   虚拟环境(virtual environment),顾名思义是虚拟出来的环境,通俗来讲,可以借助虚拟机,docker来理解虚拟环境,就是把一部分内容独立出来,我们把这部分独立出来的 ...