「学习笔记」切比雪夫距离

切比雪夫距离

[maxlimits_{i=1}^{n} |ax_i-ay_i| ]

就是坐标差的绝对值的极值

然后我们思考曼哈顿距离和切比雪夫距离的关系:

在纸上建一个二维坐标系,然后画一个与原点曼哈顿距离为 (5) 的正方形 (S_1)

然后再画一个切比雪夫距离为 (5) 的正方形 (S_2)

看看它们,是不是有某种奇妙的联系:(S_1) 旋转 (45) 度后放大为原来原来的两倍就是 (S_2)

互相转化的公式为$(x,y) on S_1 ightarrow(frac{x+y}{2},frac{x-y}{2}) on S_2 $

这里可以用来使某些题的处理更加方便

例题

Luogu5193 [TJOI2012]炸弹

曼哈顿两个维度有点头疼,不好处理,那我们转切比雪夫

这样我们把距离转成了以每个点为原点,在定边长切比雪夫距离矩形中框点

我们上 (map) 扫描线就行了

我们在处理每个点的时候就直接找那个离他 (y) 最近的上下两个就行了

因为那个点已经考虑了前面的点

Luogu3966 单词

看出来是个切比雪夫不难

然后把切比雪夫转成曼哈顿

这样距离就可以前缀和求啦!

BZOJ2735世博会

把发现题目里面要求的是一个切比雪夫距离

那么转到曼哈顿上维护中位数和前后缀和即可

然后写一下这题目我犯的所有错误:

1.线段树查询:

if(st<=mid) ...
else ...->if(ed>mid)

2.求和的时候减东西减错了,应该拿 (pair o second)

然后就没了

原文地址:https://www.cnblogs.com/yspm/p/12784289.html