【计几】曼哈顿距离与切比雪夫距离
讲解链接: 距离 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) 后,原坐标系中的切比雪夫距离等于新坐标系中的曼哈顿距离。
几个经典问题
- 二维非欧最远点对。
- 二维非欧最近点对。
- 多维曼哈顿最远点对。
- 多维曼哈顿最近点对。
二维非欧最远点对
- 转化为切比雪夫距离后,我们知道
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=maxi,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{maxi,j∈n{∣xi−xj∣},maxi,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个三维树状数组,树状数组维护前缀最大值。那么我们如果要得到最近的点,我们就去八个树状数组中查询小于等于当前值的最大值,做差取最小值即可。
【计几】曼哈顿距离与切比雪夫距离题集
【计几】曼哈顿距离与切比雪夫距离相关推荐
- 曼哈顿距离和切比雪夫距离链接
存一下链接慢慢看 曼哈顿距离和切比雪夫距离 这个更清晰一些: 关于曼哈顿距离和切比雪夫距离 NN中常用的距离计算公式:欧式距离.曼哈顿距离.马氏距离.余弦.汉明距离
- 曼哈顿距离与切比雪夫距离的转化及prufer序列
目录 曼哈顿距离与切比雪夫距离的相互转化 prufer序列 1. 曼哈顿距离 与 切比雪夫距离 的相互转化 曼哈顿距离 |x1−x2|+|y1−y2|=max(x1−x2+y1−y2,x1−x2−y1 ...
- ML:图像数据、字符串数据等计算相似度常用的十种方法(余弦相似性、皮尔逊、闵可夫斯基距离/曼哈顿距离/欧氏距离/切比雪夫距离、马氏距离、汉明距离、编辑距离、杰卡德相似系数、相对熵/KL散度、Helli
ML:图像数据.字符串数据等计算相似度常用的十种方法(余弦相似性.皮尔逊.闵可夫斯基距离/曼哈顿距离/欧氏距离/切比雪夫距离.马氏距离.汉明距离.编辑距离.杰卡德相似系数.相对熵/KL散度.Helli ...
- 什么是范数,及其对应的 “曼哈顿距离“、“欧式距离“、“闵氏距离“、“切比雪夫距离“
什么是范数,及其对应的 "曼哈顿距离"."欧式距离"."闵氏距离"."切比雪夫距离" 一.什么是范数 二.欧式距离(对应 ...
- 数据的距离度量 一、欧式距离,曼哈顿距离,闵氏距离,切比雪夫距离,兰氏距离,马氏距离
数据的距离度量 一.欧式距离,曼哈顿距离,闵氏距离,切比雪夫距离,兰氏距离,马氏距离 前言 欧式距离 标准欧式距离 曼哈顿距离 闵氏距离 切比雪夫距离 兰氏距离 马氏距离 前言 本篇记录一下常用的数据 ...
- 曼哈顿距离和切比雪夫距离转换
设平面空间内存在两点,它们的坐标为(x1,y1) (x2,y2) 曼哈顿距离 dis=|x1−x2|+|y1−y2|,即两点横纵坐标差之和. 切比雪夫距离 dis=max(|x1−x2|,|y1−y2 ...
- 曼哈顿距离与切比雪夫距离及其相互转化
文章目录 曼哈顿距离与切比雪夫距离及其相互转化 1.算法分析 1.1 曼哈顿距离 1.2 切比雪夫距离 1.3 两者之间的关系 1.4 用处 2.典型例题 曼哈顿距离与切比雪夫距离及其相互转化 1.算 ...
- 三维马氏距离_各种距离(欧氏距离、曼哈顿距离、切比雪夫距离、马氏距离等)...
引用:http://blog.csdn.net/shiwei408/article/details/7602324 在做分类时常常需要估算不同样本之间的相似性度量(SimilarityMeasurem ...
- 曼哈顿距离和切比雪夫距离
转载 https://www.cnblogs.com/zwfymqz/p/8253530.html 本文只讨论二维空间中的曼哈顿距离与切比雪夫距离 曼哈顿距离 定义 设平面空间内存在两点,它们的坐标为 ...
最新文章
- php是isapi运行模式,php isapi运行模式
- oracle文字与格式字符串不匹配的解决
- 牛客 - Hash(思维+进制转换)
- 开课了撒贝宁超级计算机,从儿时的不自信,到现在的北大高材生,看看撒贝宁的开挂人生...
- Linux中自动删除n天前日志
- libxml的安装和相关数据结构详解
- PHP 数组的内部实现
- 电脑快捷键(键盘不灵了赶紧使用快捷键)
- ubuntu 发布asp.net 站点(.net core)
- matlab 冒泡排序函数,MATLAB实现冒泡排序算法
- vegas Pro18.2021注册机补丁下载 如何做短视频基本参数设置及面板介绍
- OpenGL 头文件,库文件
- Kali利用Redis未授权漏洞入侵服务器
- 【HTML5入门指北】第二篇 网页相关的标签
- python设置颜色深浅_海伯恩例外,因为颜色深浅
- 奥鹏20春季1903C语言,奥鹏南开大学 20秋学期(1709、1803、1809、1903、1909、2003、2009 )《程序设计基础(下)》在线作业...
- oracle xe连接数,解决Oracle XE允许连接的用户数不足问题
- medusa命令介绍
- dubbo-dubbo spi详解
- 我人生的 5 位老师,祝教师节快乐!