最遠 Manhattan 距離

2022-03-29 00:37:14 字數 993 閱讀 6274

k維空間下的n個點,求兩點最遠曼哈頓距離

以二維為例介紹演算法思想,即可類推到k維。對於p,q兩點,曼哈頓距離|px-qx|+|py-qy|可看作(±px±py)-(±qx±qy),不難發現px應該與qx的符號相同,py與qy符號相同,因此共四種情況。這樣寫的好處是,每個點可以表示成相同的形式(±px±py)。而曼哈頓距離一定是四種情況中值最大的那種,所以要求兩點最遠曼哈頓距離,可以列舉所有的取符號情況,對於每種情況,維護出上述表示下n個點的最大值與最小值,求出差值。則最遠的曼哈頓距離一定是所有情況中的最大差值。

ll max_manhattan(ll p[10],int n,int k)

void upd(int p,int l,int r,int id)

int mid=(l+r)>>1;

if (p<=mid)

upd(p,l,mid,id<<1);

else

upd(p,mid+1,r,id<<1|1);

push_up(id);

}void qry(int l,int r,int& max,int& min,int l,int r,int id,int s)

int mid=(l+r)>>1;

if (r>mid)

qry(l,r,max,min,mid+1,r,id<<1|1,s);

if (l<=mid)

qry(l,r,max,min,l,mid,id<<1,s);

}int query(int l,int r)

{ int ans=0;

for (int s=0;s<(1<>n>>k;

for (int i=1;i<=n;++i)

for (int j=0;j>q;

while (q--)

{ int op;

scanf("%d",&op);

if (op==1)

{ int id;

scanf("%d",&id);

for (int i=0;i

關於多維最遠Manhattan距離

題目 給出n 1 n 50000 個點,k 1 k 7 維,求出最遠的manhattan距離。include includeinline int read while t 0 t 9 p p 10 t 48,t getchar return p f int a 10 ma 166 now 166 i...

最遠的距離

人們總是為了自己的目標在不斷努力,有生活的目標,有事業的目標,當然也有愛情的目標,但是又發現我們和目標的距離又是那麼遙遠。短暫的一生要走的路很多,要做的事更多,想起這些心理總是難得平靜,不是我們不想平靜,而是對於自己的追求無法平靜。有時候恰恰生活總是給我們帶來很多無奈,我們追的越緊目標卻越遠,生活如...

世界上最遠的距離

世界上最遠的距離莫過於我站在你面前,可你並不知道我愛你 泰戈爾 世界上最遠的距離 不是生與死的距離 而是我站在你的面前 你卻不知道我愛你 世界上最遠的距離 不是我站在你的面前 你卻不知道我愛你 而是愛到痴迷 卻不能說我愛你 世界上最遠的距離 不是我不能說我愛你 而是想你痛徹心脾 卻只能深埋心底 世界...