這道題大意是選定乙個點,使其它點到它的距離sigma(dis=max(x-x0,y-y0)) 最小。
做法是旋轉座標,橫縱座標分開統計每個點的答案,取最小值。
啟示:以前知道旋轉座標可以將dis=abs(x-x0)+abs(y-y0)的◇區域變成乙個dis=max(x-x0,y-y0)的正方形區域,這道題讓我知道了逆著做也是可以的。以後做座標+距離的題都多想一想旋轉座標吧。
問題:想到了之後,速敲了乙個中位數,最後發現讀錯題了,不是可以在任意一點聚會。
#include#include
#include
#include
#include
#define md
#define ll long long
#define inf (int) 1e9
#define eps 1e-8
#define n 100010
using namespace std;
struct p p[n];
bool cmpx(p a,p b)
bzoj3170 松鼠聚會
這個距離就是切比雪夫距離,有乙個神奇的東西是說將 x,y 變成 x y,x y 然後就是曼哈頓距離,因此轉化後對x座標和y座標分別統計排序和求和 求字首和預處理 二分 1 include2 using namespace std 3 define n 100005 4struct jia n 7in...
BZOJ3170 Tjoi 2013 松鼠聚會
time limit 10 sec memory limit 128 mb submit 531 solved 249 submit status 有n個小松鼠,它們的家用乙個點x,y表示,兩個點的距離定義為 點 x,y 和它周圍的8個點即上下左右四個點和對角的四個點,距離為1。現在n個松鼠要走到乙...
bzoj3170 Tjoi 2013 松鼠聚會
有n個小松鼠,它們的家用乙個點x,y表示,兩個點的距離定義為 點 x,y 和它周圍的8個點即上下左右四個點和對角的四個點,距離為1。現在n個松鼠要走到乙個松鼠家去,求走過的最短距離。input 第一行給出數字n,表示有多少只小松鼠。0 n 10 5 下面n行,每行給出x,y表示其家的座標。10 9 ...