切比雪夫距离

洛谷P3964[TJOI2013]松鼠聚会

主要就是看@Rbu_nas 的题解写的
(那篇题解真的挺明白的了)
题意简述:在 n 个点中找到一个点 x,使其他 n-1 个点到 x 的 切比雪夫距离 之和最小。求距离和的最小值。


什么是切比雪夫距离?

题干中说的那种距离就是切比雪夫距离
更数学一点的描述是:
设两点坐标为:(x1,y1),(x2,y2),则这两点的切比雪夫距离
就是max{|x1-x2| , |y1-y2|}
然后题解又说了一个**”曼哈顿距离“**
这又是啥呢?就是|x1-x2|+|y1-y2|
然后题解说这样求距离快然后就要找这两个距离之间的转化关系:
拆绝对值:|x1-x2|+|y1-y2|
=>max(x1-x2,x2-x1)+max(y1-y2,y2-y1)
=>max((x2-x1)+(y2-y1),(x1-x2)+(y2-y1),(x2-x1)+(y1-y2),
(x1-x2)-(y1-y2)}(两个正的相加肯定比一负一正或者两个负
要大)
然后就是这个东西:
在这里插入图片描述
然后再看切比雪夫距离定义,我们发现:
曼哈顿意义下(x1,y1)(x2,y2)之间的距离被转化成了
切比雪夫意义下(x1+y1,x1-y1)*(x2+y2,x2-y2)之间的距离
更一般地,曼哈顿意义下的坐标(x,y)在切比雪夫意义下
即为(x+y,x-y)
反过来,切比雪夫意义下(x,y)对应到曼哈顿意义下则变为
((x+y)/2,(x-y)/2)


为什么曼哈顿距离求和快?

因为可以转成求前缀和
将x那一维的所有数值排序
比xi小的都在xi前面,比xi大的都在xi后面
对于xi前面,都要被xi减去
对于yi后面,都需要把xi减去
然后就是这个东西:

在这里插入图片描述

然后维护前缀和就行了
然后就搞定一个紫题
哇~
end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值