讲解链接: 距离 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. php是isapi运行模式,php isapi运行模式
  2. oracle文字与格式字符串不匹配的解决
  3. 牛客 - Hash(思维+进制转换)
  4. 开课了撒贝宁超级计算机,从儿时的不自信,到现在的北大高材生,看看撒贝宁的开挂人生...
  5. Linux中自动删除n天前日志
  6. libxml的安装和相关数据结构详解
  7. PHP 数组的内部实现
  8. 电脑快捷键(键盘不灵了赶紧使用快捷键)
  9. ubuntu 发布asp.net 站点(.net core)
  10. matlab 冒泡排序函数,MATLAB实现冒泡排序算法
  11. vegas Pro18.2021注册机补丁下载 如何做短视频基本参数设置及面板介绍
  12. OpenGL 头文件,库文件
  13. Kali利用Redis未授权漏洞入侵服务器
  14. 【HTML5入门指北】第二篇 网页相关的标签
  15. python设置颜色深浅_海伯恩例外,因为颜色深浅
  16. 奥鹏20春季1903C语言,奥鹏南开大学 20秋学期(1709、1803、1809、1903、1909、2003、2009 )《程序设计基础(下)》在线作业...
  17. oracle xe连接数,解决Oracle XE允许连接的用户数不足问题
  18. medusa命令介绍
  19. dubbo-dubbo spi详解
  20. 我人生的 5 位老师,祝教师节快乐!

热门文章

  1. 1455E Four Points(思维+全排列)
  2. SQL联合查询(内联、左联、右联、全联)的语法
  3. QGraphicsView 的使用(滚轮缩放)
  4. Webstorm配置本地服务器
  5. python系列之:str、byte、hex相互转换
  6. 《怪物猎人:世界》将于7月26日开启星辰祭
  7. NRF52840-最小系统板
  8. 四川汶川地震信息播报
  9. oracle rac 快速闪回区 路径,oracle 10g rac配置闪回恢复区 开启归档
  10. GBase 8c 产品运行环境