bzoj 3210 花神的澆花集會

2021-08-08 13:19:27 字數 690 閱讀 1391

題意:平面上n個點求一點使所有點到它的切比雪夫距離最小。

題解:先把切比雪夫距離轉化成曼哈頓距離:把(x,y)變為(x+y,x-y),新點間的曼哈頓距離的一半就是原點的切比雪夫距離。曼哈頓距離的兩維沒有聯絡,所以最小的點的橫座標和縱座標可以分開求。很明顯,要使絕對值的和最小,點肯定在中位數上。但是因為x和y都是整數,x+y和x-y的奇偶性一定相同。中位數求出來的是一奇一偶的話,就在它四周的點找答案。

**:

#include

#include

#include

using

namespace

std;

int n,x,y;

struct pnt

p[100010];

int cmp1(pnt x,pnt y)

int main()

sort(p,p+n,cmp1);

x=p[n>>1].x;

sort(p,p+n,cmp2);

y=p[n>>1].y;

if((x&1)==(y&1))

printf("%lld",get(x,y)>>1);

else

printf("%lld",min(get(x+1,y),min(get(x-1,y),min(get(x,y+1),get(x,y-1))))>>1);

}

bzoj3210 花神的澆花集會

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

bzoj3210 花神的澆花集會

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

BZOJ 3210 花神的澆花集會

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