BZOJ3210 花神的澆花集會(座標系變換)

2022-02-27 07:43:33 字數 754 閱讀 9871

傳送門

座標系變換把切比雪夫距離轉化為曼哈頓距離

那麼對於所有的\(x\)座標中,肯定是中位數最優了,\(y\)座標同理

然而有可能這個新的點不合法,也就是說不存在\((x+y,x-y)\)等於新的點,即\(x,y\)奇偶性不同,那麼就找一下這個點周圍的點,找最小的就行了

//minamoto

#include#define r register

#define ll long long

#define inline __inline__ __attribute__((always_inline))

#define fp(i,a,b) for(r int i=(a),i=(b)+1;ii;--i)

#define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)

templateinline bool cmin(t&a,const t&b)

using namespace std;

char buf[1<<21],*p1=buf,*p2=buf;

inline char getc()

int read()

const int n=1e5+5;

int dx[n],dy[n],n,x,y;

inline int abs(r int x)

ll dis(r int x,r int y)

int main()

bzoj3210 花神的澆花集會

給你n個點,要你求乙個點,橫縱座標是範圍在0到100000之間的整數,使得該點到所有給定的點的切比雪夫距離最小。n 100000 0 座標範圍 100000 首先兩個點 x1,y1 x2,y2 的切比雪夫距離為ma x x 1 x2 y 1 y2 然後把每個點的座標變成 x y,x y 兩個點切比雪...

bzoj 3210 花神的澆花集會

題意 平面上n個點求一點使所有點到它的切比雪夫距離最小。題解 先把切比雪夫距離轉化成曼哈頓距離 把 x,y 變為 x y,x y 新點間的曼哈頓距離的一半就是原點的切比雪夫距離。曼哈頓距離的兩維沒有聯絡,所以最小的點的橫座標和縱座標可以分開求。很明顯,要使絕對值的和最小,點肯定在中位數上。但是因為x...

bzoj3210 花神的澆花集會

根據網上題解可得 qaq。把座標變成 x y,x y 後,原本的切比雪夫距離就是現在的曼哈頓距離的一半。似乎金組題裡也有道一模一樣的。分別求出橫縱座標的中位數。但如果所取的點的x y奇偶性不同。那在原圖裡是沒有對應點的。所以可能要再試一下旁邊的四個點 1 include2 include3 incl...