总结:OI题目中常见的三种距离

设 \(A(x_1, y_1), B(x_2, y_2)\)。

欧几里得距离

\[|AB| = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2} \]

一般模型:在一个坐标系上,求从一个点到另一个点的最短几何距离。

曼哈顿距离

\[|AB| = |x_2 - x_1| + |y_2 - y_1| \]

一般模型:网格图中从一个点走向另一个点的最短距离。

切皮雪夫距离

\[|AB| = \max(|x_2 - x_1|, |y_2 - y_1|) \]

一般模型:棋盘上或者在图中一个点到另外相邻八个点的距离为 1。

曼哈顿和切皮雪夫距离的互相转化

曼哈顿 \(\to\) 切皮雪夫:\((x, y) \to (x + y, x - y)\)。

切皮雪夫 \(\to\) 曼哈顿:\((x, y) \to (\frac{x + y}{2}, \frac{x - y}{2})\)。

后者用的比较多,切皮雪夫距离在计算时要取 \(max\),往往不是很好优化。

例题:TJOI2013 松鼠聚会 - Luogu

固定聚会点后,直接计算距离和是 \(O(n)\) 的,无法接受。

我们转化成曼哈顿距离,发现 \(x, y\) 的贡献分别独立出来了,我们可以分别排序,前缀和优化,二分查找。这样就能做到单次 \(O(2logn)\) 计算,可以通过本题。

  • 参考博客

曼哈顿距离与切比雪夫距离及其相互转化 - 自为风月马前卒 - 博客园

题解 P3964 松鼠聚会 - Rbu_nas