Link:

BZOJ 3170 传送门

Solution:

$Knowledge Point:$

切比雪夫距离$DIST(a,b)=max\{ |X'_a-X'_b|,|Y'_a-Y'_b|\}$

曼哈顿距离$dist(a,b)=|X_a-X_b|+|Y_a-Y_b|$

可以发现此题如果为曼哈顿距离,直接排2次序算前缀和就行了

接下来只要实现切比雪夫距离向曼哈顿距离的转换即可

可以将上述两种距离进行转化:

$DIST(a,b)=max\{ X'_a-X'_b,            Y'_a-Y'_b,            Y'_b-Y'_a,            X'_b-X'_a\}$

$dist(a,b)=max\{ X_a-X_b+Y_a-Y_b,X_a-X_b-Y_a+Y_b,-X_a+X_b+Y_a-Y_b,-X_a+X_b-Y_a+Y_b\}$

发现了奥妙重重的性质:只要将$X'$改为$X+Y$,$Y'$改为$X-Y$,两式就完全相同了

于是已知$X'$与$Y'$时,$X=\frac{X'+Y'}{2}$,$Y=\frac{X'-Y'}{2}$

使用新点和曼哈顿距离解题即可

Code:

#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
const int MAXN=1e5+;
struct data{ll x,y;int id;}dat[MAXN];
int n;ll pre[MAXN],res[MAXN]; bool cmp1(data a,data b){return a.x<b.x;}
bool cmp2(data a,data b){return a.y<b.y;} int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
{
ll x,y;scanf("%lld%lld",&x,&y);
dat[i].id=i;dat[i].x=(x+y);dat[i].y=(x-y);
}
sort(dat+,dat+n+,cmp1);
for(int i=;i<=n;i++)
pre[i]=pre[i-]+dat[i].x;
for(int i=;i<=n;i++)
res[dat[i].id]=(pre[n]-pre[i])-dat[i].x*(n-*i+)-pre[i-]; sort(dat+,dat+n+,cmp2);
for(int i=;i<=n;i++)
pre[i]=pre[i-]+dat[i].y;
for(int i=;i<=n;i++)
res[dat[i].id]+=(pre[n]-pre[i])-dat[i].y*(n-*i+)-pre[i-];
for(int i=;i<=n;i++) res[]=min(res[],res[i]);
printf("%lld",res[]>>);
return ;
}

[BZOJ 3170] 松鼠聚会的更多相关文章

  1. BZOJ 3170 松鼠聚会(XY坐标)

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=3170 题意:给出二维平面上n个点 (xi,yi).求一点t(1<=t<=n) ...

  2. BZOJ 3170 松鼠聚会(切比雪夫距离转曼哈顿距离)

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

  3. 【BZOJ】【3170】【TJOI2103】松鼠聚会

    切比雪夫距离+曼哈顿距离 题解:http://www.cnblogs.com/zyfzyf/p/4105456.html 其实应该先做这题再做[BZOJ][3210]花神的浇花集会的吧…… 我们发现d ...

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

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

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

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

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

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

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

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

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

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

  9. [Tjoi 2013]松鼠聚会

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

随机推荐

  1. bzoj2724: [Violet 6]蒲公英 分块 区间众数 论algorithm与vector的正确打开方式

    这个,要处理各个数的话得先离散,我用的桶. 我们先把每个块里的和每个块区间的众数找出来,那么在查询的时候,可能成为[l,r]区间的众数的数只有中间区间的众数和两边的数. 证明:若不是这里的数连区间的众 ...

  2. JS获取当前时间及时间戳相互转换

    1.获取当前时间的 时间戳 Date.parse(new Date()) 结果:1486347562000 2.获取当前 时间 new Date() 结果:Mon Feb 06 2017 10:19: ...

  3. wyh的天鹅~vector的使用

    链接:https://www.nowcoder.com/acm/contest/93/L来源:牛客网 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 262144K,其他语言52428 ...

  4. 配置Tomcat时server.xml和content.xml自动还原问题

    当我们在处理中文乱码或是配置数据源时,我们要修改Tomcat下的server.xml和content.xml文件. 但是当我们修改完后重启Tomcat服务器时发现xml文件又被还原了,修改无效果. 为 ...

  5. 动态性能视图v$session_longops

    v$session_longops This view displays the status of various operations that run for longer than 6 sec ...

  6. 在Ubuntu下编译WebKit源码--qt

    转载自:http://www.cnblogs.com/panderen/archive/2011/10/18/2216154.html 在朋友的介绍下有幸認识了WebKit这个让人心动的开源浏览器内核 ...

  7. input 单选按钮radio 取消选中(转载)

    input单选按钮: 在radio按钮中添加属性tag  0代表未被选中 HTML代码: <input name="rdo1" value="AA" ty ...

  8. eclipse更改web项目的WebContent目录

    在使用eclipse 中 , 相信大家比我更是轻车熟路了 ( 我平常一般用 Intellij idea 的 ), 下面讲解一下在eclipse web项目中 , 如何设置 webroot 目录指向问题 ...

  9. CF 200 div.1 A

    2013-10-11 16:45 Rational Resistance time limit per test 1 second memory limit per test 256 megabyte ...

  10. Spark优化之一:分布式下的map操作是闭包

    例如对一个JavaPairRDD<String, String>做遍历操作,常见的,我们可以通过先通过collect()操作将它转化为Map对象再进行遍历,也可以使用Spark提供的map ...