讲解链接: 距离 OI Wiki


曼哈顿距离与切比雪夫距离:为何要相互转化

  • 我们设 dM(A,B)d_M(A,B)dM​(A,B) 为点 AAA 和点 BBB 的曼哈顿距离, dQ(A,B)d_Q(A,B)dQ​(A,B) 为点 AAA 和点 BBB 的切比雪夫距离。

  • 那么我们有两点 A(x1,y1),B(x2,y2)A(x_1,y_1),B(x_2,y_2)A(x1​,y1​),B(x2​,y2​)时,两点在映射前后的 MMM 距离和 QQQ 距离是相等的。

  • 碰到求切比雪夫距离或曼哈顿距离的题目时,我们往往可以相互转化来求解。两种距离在不同的题目中有不同的优缺点,应该灵活运用。

如何相互转化

  • 曼哈顿坐标系是通过切比雪夫坐标系旋转 45°45°45° 后,再缩小到原来的一半得到的。

  • 将一个点 (x,y)(x,y)(x,y) 的坐标变为 (x+y,x−y)(x+y,x-y)(x+y,x−y) 后,原坐标系中的曼哈顿距离等于新坐标系中的切比雪夫距离。

  • 将一个点 (x,y)(x,y)(x,y) 的坐标变为 (x+y2,x−y2)(\frac{x+y}{2},\frac{x-y}{2})(2x+y​,2x−y​) 后,原坐标系中的切比雪夫距离等于新坐标系中的曼哈顿距离。




几个经典问题

  1. 二维非欧最远点对。
  2. 二维非欧最近点对。
  3. 多维曼哈顿最远点对。
  4. 多维曼哈顿最近点对。

二维非欧最远点对

  • 转化为切比雪夫距离后,我们知道

dQ=max⁡{∣xi−xj∣,∣yi−yj∣}d_Q=\max\begin{Bmatrix} |x_i - x_j|,|y_i - y_j|\end{Bmatrix}dQ​=max{∣xi​−xj​∣,∣yi​−yj​∣​}

  • 那么
    ans=max⁡i,j∈n{max⁡{∣xi−xj∣,∣yi−yj∣}}ans=\max\limits_{i,j\in n}\begin{Bmatrix} \max\begin{Bmatrix} |x_i - x_j|,|y_i - y_j|\end{Bmatrix}\end{Bmatrix}ans=i,j∈nmax​{max{∣xi​−xj​∣,∣yi​−yj​∣​}​} =max{max⁡i,j∈n{∣xi−xj∣},max⁡i,j∈n{∣yi−yj∣}}= max\begin{Bmatrix} \max\limits_{i,j\in n}\begin{Bmatrix} |x_i-x_j| \end{Bmatrix},\max\limits_{i,j\in n}\begin{Bmatrix} |y_i-y_j| \end{Bmatrix}\end{Bmatrix}=max{i,j∈nmax​{∣xi​−xj​∣​},i,j∈nmax​{∣yi​−yj​∣​}​} =max⁡{max(x)−min(x),max(y)−min(y)}=\max\begin{Bmatrix} max(x)-min(x), max(y)-min(y) \end{Bmatrix}=max{max(x)−min(x),max(y)−min(y)​}

  • 扫一遍即可


二维非欧最近点对

  • 仿照多维非欧最近点对,树状数组即可。

多维曼哈顿最远点对

  • 对于二维曼哈顿距离,我们有公式 d(A,B)=∣x1−x2∣+∣y1−y2∣=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)\begin{aligned} d(A,B)&=|x_1 - x_2| + |y_1 - y_2|\\ &=\max\begin{Bmatrix} x_1 - x_2 + y_1 - y_2, x_1 - x_2 + y_2 - y_1,x_2 - x_1 + y_1 - y_2, x_2 - x_1 + y_2 - y_1\end{Bmatrix}\\ &= \max((x_1 + y_1) - (x_2 + y_2), (x_1 - y_1) - (x_2 - y_2),(-x_1 + y_1) - (-x_2 + y_2)) ,(-x_1 - y_1) - (-x_2 - y_2)\end{aligned} d(A,B)​=∣x1​−x2​∣+∣y1​−y2​∣=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​)​

  • 那么

ans=max(max{(x+y)−(xj+yj)(x−y)−(xj−yj)(−x+y)−(−xj+yj)(−x−y)−(−xj−yj)},max(......),......)(2)ans=max(max\left\{\begin{matrix}(x+y)-(x_j+y_j)\\(x-y)-(x_j-y_j)\\(-x+y)-(-x_j+y_j)\\(-x-y)-(-x_j-y_j)\end{matrix}\right\} \tag{2},max(......),......)ans=max(max⎩⎪⎪⎨⎪⎪⎧​(x+y)−(xj​+yj​)(x−y)−(xj​−yj​)(−x+y)−(−xj​+yj​)(−x−y)−(−xj​−yj​)​⎭⎪⎪⎬⎪⎪⎫​,max(......),......)(2)

  • 也就是在四个状态下维护最大最小值,最后从四个状态中更新即可。

  • 多维也同理。详见 POJ 2926 题解


多维曼哈顿最近点对

我们用以前的思路发现,查询时ans为
ans=min(max{(x+y)−(xj+yj)(x−y)−(xj−yj)(−x+y)−(−xj+yj)(−x−y)−(−xj−yj)},max(......),......)(2)ans=min(max\left\{\begin{matrix}(x+y)-(x_j+y_j)\\(x-y)-(x_j-y_j)\\(-x+y)-(-x_j+y_j)\\(-x-y)-(-x_j-y_j)\end{matrix} \right\} \tag{2} ,max(......),...... ) ans=min(max⎩⎪⎪⎨⎪⎪⎧​(x+y)−(xj​+yj​)(x−y)−(xj​−yj​)(−x+y)−(−xj​+yj​)(−x−y)−(−xj​−yj​)​⎭⎪⎪⎬⎪⎪⎫​,max(......),......)(2)
这样的式子,max没发现以前那样拆开,难以往下推。

如果像以前描的话,我们算出来的是每一行的max然后取min,不能保证和此式子等价。

正解:

  • 以查询点为原点,将空间分隔为八个卦限,最优解一定存在于某个卦限。我们可以以这个立体空间的8个角分别为原点坐标建立8个三维树状数组,树状数组维护前缀最大值。那么我们如果要得到最近的点,我们就去八个树状数组中查询小于等于当前值的最大值,做差取最小值即可。

【计几】曼哈顿距离与切比雪夫距离题集

【计几】曼哈顿距离与切比雪夫距离相关推荐

  1. 曼哈顿距离和切比雪夫距离链接

    存一下链接慢慢看 曼哈顿距离和切比雪夫距离 这个更清晰一些: 关于曼哈顿距离和切比雪夫距离 NN中常用的距离计算公式:欧式距离.曼哈顿距离.马氏距离.余弦.汉明距离

  2. 曼哈顿距离与切比雪夫距离的转化及prufer序列

    目录 曼哈顿距离与切比雪夫距离的相互转化 prufer序列 1. 曼哈顿距离 与 切比雪夫距离 的相互转化 曼哈顿距离 |x1−x2|+|y1−y2|=max(x1−x2+y1−y2,x1−x2−y1 ...

  3. ML:图像数据、字符串数据等计算相似度常用的十种方法(余弦相似性、皮尔逊、闵可夫斯基距离/曼哈顿距离/欧氏距离/切比雪夫距离、马氏距离、汉明距离、编辑距离、杰卡德相似系数、相对熵/KL散度、Helli

    ML:图像数据.字符串数据等计算相似度常用的十种方法(余弦相似性.皮尔逊.闵可夫斯基距离/曼哈顿距离/欧氏距离/切比雪夫距离.马氏距离.汉明距离.编辑距离.杰卡德相似系数.相对熵/KL散度.Helli ...

  4. 什么是范数,及其对应的 “曼哈顿距离“、“欧式距离“、“闵氏距离“、“切比雪夫距离“

    什么是范数,及其对应的 "曼哈顿距离"."欧式距离"."闵氏距离"."切比雪夫距离" 一.什么是范数 二.欧式距离(对应 ...

  5. 数据的距离度量 一、欧式距离,曼哈顿距离,闵氏距离,切比雪夫距离,兰氏距离,马氏距离

    数据的距离度量 一.欧式距离,曼哈顿距离,闵氏距离,切比雪夫距离,兰氏距离,马氏距离 前言 欧式距离 标准欧式距离 曼哈顿距离 闵氏距离 切比雪夫距离 兰氏距离 马氏距离 前言 本篇记录一下常用的数据 ...

  6. 曼哈顿距离和切比雪夫距离转换

    设平面空间内存在两点,它们的坐标为(x1,y1) (x2,y2) 曼哈顿距离 dis=|x1−x2|+|y1−y2|,即两点横纵坐标差之和. 切比雪夫距离 dis=max(|x1−x2|,|y1−y2 ...

  7. 曼哈顿距离与切比雪夫距离及其相互转化

    文章目录 曼哈顿距离与切比雪夫距离及其相互转化 1.算法分析 1.1 曼哈顿距离 1.2 切比雪夫距离 1.3 两者之间的关系 1.4 用处 2.典型例题 曼哈顿距离与切比雪夫距离及其相互转化 1.算 ...

  8. 三维马氏距离_各种距离(欧氏距离、曼哈顿距离、切比雪夫距离、马氏距离等)...

    引用:http://blog.csdn.net/shiwei408/article/details/7602324 在做分类时常常需要估算不同样本之间的相似性度量(SimilarityMeasurem ...

  9. 曼哈顿距离和切比雪夫距离

    转载 https://www.cnblogs.com/zwfymqz/p/8253530.html 本文只讨论二维空间中的曼哈顿距离与切比雪夫距离 曼哈顿距离 定义 设平面空间内存在两点,它们的坐标为 ...

最新文章

  1. Python 学习第十八天 js 正则及其它前端知识
  2. Istio流量管理实践之(5): 使用cert-manager部署Istio自定义入口网关及进行证书管理...
  3. 在既有系统中打通Apache Ignite、MySQL和Node.js
  4. 杂记 - 进化成更好的人
  5. 面向对象的理解及相关概念(封装,继承,多态)
  6. [二分搜索|快速选择] leetcode 4 寻找两个正序数组的中位数
  7. UVA10882 Koerner's Pub【数学】
  8. 网页运行python脚本_python脚本和网页有何区别
  9. 《普林斯顿微积分读本》笔记-第3章极限导论
  10. 油田智能化远程监控系统_油田远程监控系统方案
  11. iOS App Crash 防护框架之 MKCrashGuard
  12. 导出word文档生成docx格式 添加水印
  13. 昨日种种已得奖,那深度学习三巨头今天在忙什么?
  14. 自家小程序 如何实现定点跳转其他(比如:京东,天猫,淘宝)的小程序的具体店铺
  15. 荣耀magic5pro参数配置
  16. 力扣第十五题-三数之和
  17. 网络七层协议:OSI七层协议大白话解读
  18. 区块链项目 - 2 工作量证明
  19. [Qt] Qt自带的modbus client 和 server 例程的拓展
  20. 2016下半年计算机水平模拟考试系统,2016下半年计算机等级考试试题及答案

热门文章

  1. 春季实习生校招,网易笔试与面试——C++杭州研究院
  2. cocos2dx 之内存管理
  3. Android,开启wifi接收广播
  4. iOS 获取手机IP地址
  5. 黄金分割寻优算法(0.618法)的Matlab实现
  6. Flink CheckPoint机制简介
  7. 甘肃安全员B证怎么考单选题库
  8. 笔记本电脑性价比排行2022年最值得入手 笔记本电脑性价比排行学生用
  9. 知道你们为什么抢不到红米吗?来看看这个
  10. 行波iq调制器_IQ调制器的制作方法