1. 程式人生 > 其它 >21.10.19 zhzx 膜你賽 覆盤

21.10.19 zhzx 膜你賽 覆盤

這一場打的非常差。

總分:\(\dfrac{40}{400}\)

細分:\(40=20+0+0+20\)

最大失誤點:T1 正解沒有想到轉切比雪夫還花去了大量時間。

\(\tt \Huge{A\ Travel}\)

給定平面上 \(n\) 個點,對於點 \(i,j\),滿足曼哈頓距離 \(\le D\) 則互相可達。
求在可遍歷所有點的前提下 \(D\) 的最大值。
多測,\(1\le T\le3\)\(1\le n\le5\times10^5\)\(1\le x_i,y_i\le 1\times10^9\)

考點:曼哈頓轉切比雪夫,二分,dsu。

考場思路:

二分,然後發現 check 函式不會寫。

考慮將其按 \(\dfrac D2\)

橫向、縱向分塊,顯然在一個正方形內的兩點不可能互相達到。

然後發現這玩意簡直漏洞百出。

接著就開始想來想去就是沒有想到 dsu。


正解:

考慮曼哈頓轉切比雪夫,即:
設點 \(A(x_1,y_1),B(x_2,y_2)\),曼哈頓距離為 \(D_1\),切比雪夫距離為 \(D_2\)

\[D_1=|x_2-x_1|+|y_2-y_1|\\ D_2=\max(|x_2-x_1|,|y_2-y_1|)\\ \]

取點 \(C(x_1+y_1,x_2+y_2)\)