00:00:00
曼哈顿距离 & 切比雪夫距离 笔记
一、定义
曼哈顿距离:
优势:容易快速计算。
具体的,sort 一遍然后用前缀和即可计算
cpp
int calc(int d[]) {
sort(d + 1, d + n + 1);
for (int i = 1; i <= n; i++)
q[i] = q[i - 1] + d[i];
int ret = 0;
for (int i = 1; i <= n; i++)
ret += (d[i] * i - q[i]);
return ret * 2;
}切比雪夫距离:
优势:限定距离后,与坐标轴平行,容易进行扫描线 / CDQ 分治。
二、转化
1. 曼哈顿距离 切比雪夫距离
结论:将
证明:
2. 切比雪夫距离 曼哈顿距离
结论:将
证明:咕咕咕。
三、应用
1. P10633 BZOJ2989 数列/BZOJ4170 极光
将曼哈顿距离转为切比雪夫距离,打上坐标系,二维差分后 CDQ 分治。