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