這個距離就是切比雪夫距離,有乙個神奇的東西是說將(x,y)變成(x+y,x-y),然後就是曼哈頓距離,因此轉化後對x座標和y座標分別統計排序和求和(求字首和預處理+二分)
1 #include2view codeusing
namespace
std;
3#define n 100005
4struct
jia[n];
7int
n,x,y,xx[n],yy[n];
8long
long
sx[n],sy[n],ans;
9long
long calc(int x,int
y)13
intmain()
22 sort(xx+1,xx+n+1
);23
for(int i=1;i<=n;i++)sx[i]=sx[i-1]+xx[i];
24 sort(yy+1,yy+n+1
);25
for(int i=1;i<=n;i++)sy[i]=sy[i-1]+yy[i];
26 ans=1e18;
27for(int i=1;i<=n;i++)ans=min(ans,calc(a[i].x,a[i].y));
28 printf("
%lld
",ans/2
);29 }
bzoj 3170 松鼠聚會 旋轉座標
這道題大意是選定乙個點,使其它點到它的距離sigma dis max x x0,y y0 最小。做法是旋轉座標,橫縱座標分開統計每個點的答案,取最小值。啟示 以前知道旋轉座標可以將dis abs x x0 abs y y0 的 區域變成乙個dis max x x0,y y0 的正方形區域,這道題讓我...
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 ...