給你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 對這個人的...