曼哈頓距離和切比雪夫距離轉換

設平面空間內存在兩點,它們的座標爲(x1,y1) (x2,y2)
曼哈頓距離
dis=|x1−x2|+|y1−y2|,即兩點橫縱座標差之和。
切比雪夫距離
dis=max(|x1−x2|,|y1−y2|),即兩點橫縱座標差的最大值。

兩者之間的關係

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

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

如果用曼哈頓距離表示,則與原點距離爲1的點會構成一個邊長爲√2的正方形
在這裏插入圖片描述
如果用切比雪夫距離表示,則與原點距離爲1的點會構成一個邊長爲2的正方形
在這裏插入圖片描述
仔細對比這兩個圖形,我們會發現這兩個圖形長得差不多,他們應該可以通過某種變換互相轉化。

事實上,

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

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

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

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

題目 :
poj https://blog.csdn.net/qq_28954601/article/details/71170721
https://www.luogu.org/problemnew/show/P3964

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章