關於曼哈頓距離和切比雪夫距離的轉換和應用


看到曼哈頓距離就不難想到可以與切比雪夫距離進行轉換。

切比雪夫距離:

  平面上兩個點$(x1,y1),(x2,y2)$ 之間的距離為$max(|x1-x2 | , | y1 - y2 |)$.

如何轉換呢?考慮把原來的坐標系旋轉45°,原來的坐標$(x,y)$就變成了$(x+y,x - y )$

然后原圖上兩點的曼哈頓距離就變成了切比雪夫距離了。

在轉換之后,我們就可以轉化成對於兩個點其中一維的差值剛好為D,另一維度為<=D

為了方便討論,我們先假設x差值為D,

這樣來討論:

$x1−x2=D$

$−D≤y1−y2≤D$

我們固定了一維x,那么另外一維y就處於一個范圍內,我們就可以快速的處理每一個點有多少與之曼哈頓距離為D的節點了。

具體實現是按照x排序,如果x相同就按照y排序。

然后我們只需要找一個點x的兩個距離為D的點,$x+D$和$ x-D$,對應有多少個y之差小於等於D


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM