曼哈頓距離與切比雪夫距離及其相互轉化

本文只討論二維空間中的曼哈頓距離與切比雪夫距離優化

曼哈頓距離

定義

設平面空間內存在兩點,它們的座標爲$(x1,y1)$,$(x2,y2)$spa

則$dis=|x1-x2|+|y1-y2|$3d

即兩點橫縱座標差之和blog

煮個栗子

如圖所示,圖中$A,B$兩點的曼哈頓距離爲$AC+BC=4+3=7$排序

 

切比雪夫距離

定義

設平面空間內存在兩點,它們的座標爲$(x1,y1)$,$(x2,y2)$內存

則$dis=max(|x1-x2|,|y1-y2|)$get

即兩點橫縱座標差的最大值
im

再煮個栗子

$dis=max(AC,BC)=AC=4$img

 

二者之間的關係

二者的定義看上去好像毛線關係都沒有,但實際上,這兩種距離能夠相互轉化di

咱們考慮最簡單的狀況,在一個二維座標系中,設原點爲$(0,0)$

若是用曼哈頓距離表示,則與原點距離爲$1$的點會構成一個邊長爲$\sqrt{2}$的正方形

 

 

若是用切比雪夫距離表示,則與原點距離爲$1$的點會構成一個邊長爲$2$的正方形

 

 

仔細對比這兩個圖形,咱們會發現這兩個圖形長得差很少,他們應該能夠經過某種變換互相轉化。

事實上,

將一個點$(x,y)$的座標變爲$(x+y,x-y)$後,原座標系中的曼哈頓距離 $=$ 新座標系中的切比雪夫距離

將一個點$(x,y)$的座標變爲$(\frac{x+y}{2},\frac{x-y}{2})$ 後,原座標系中的切比雪夫距離 $=$ 新座標系中的曼哈頓距離

 

用處

切比雪夫距離在計算的時候須要取$max$,每每不是很好優化,對於一個點,計算其餘點到該的距離的複雜度爲$O(n)$

而曼哈頓距離只有求和以及取絕對值兩種運算,咱們把座標排序後能夠去掉絕對值的影響,進而用前綴和優化,能夠把複雜度降爲$O(1)$

例題

相關文章
相關標籤/搜索