bzoj3210 花神的澆花集會

2021-07-16 17:38:15 字數 943 閱讀 5168

給你n個點,要你求乙個點,橫縱座標是範圍在0到100000之間的整數,使得該點到所有給定的點的切比雪夫距離最小。

n≤100000 0≤座標範圍≤100000

首先兩個點(x1,y1),(x2,y2)的切比雪夫距離為ma

x(|x

1−x2

|,|y

1−y2

|)然後把每個點的座標變成(x+y,x-y),兩個點切比雪夫距離變成了它們的曼哈頓距離。

方法就很顯然了。把每個座標轉成(x+y,x-y),然後由於求的是曼哈頓距離,可以把答案的橫縱座標分開來求,然後得到乙個點(x,y)

然後把這個點座標轉回去就可以了嗎?

不行!

答案求的是整點,然而這樣求出來的座標,奇偶性可能不一樣,也就是轉回去後可能是小數(如樣例中求出的答案,轉回去座標是(1.5,1.5))。所以,對於奇偶性相同,直接轉回去即可,如果不同,答案就在這個點上下左右四個整點中找。

#include 

#include

#include

#include

using

namespace

std;

const

int maxn=100005;

typedef

long

long ll;

int n,x[maxn],y[maxn],xx[maxn],yy[maxn],ansx,ansy,x,y;

ll ans,s;

double tx,ty;

int main()

int j=0;

sort(xx,xx+n);

sort(yy,yy+n);

x=xx[n/2]; y=yy[n/2];

if ((x+y)%2==0)

else

return

0;}

bzoj 3210 花神的澆花集會

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

bzoj3210 花神的澆花集會

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

BZOJ 3210 花神的澆花集會

bzoj 3210 花神的澆花集會 切比雪夫距離 在花老師的指導下,每週4都有乙個集會活動,俗稱 澆水 活動。具體澆水活動詳情請見bzoj3153 但這不是重點 花神為了準備澆花集會的題,必須找一道盡量適合所有人的題 現在花神知道每個人的 能力x和演算法能力y,一道題 難度x演算法難度y 對這個人的...