nyoj7 街區最短路徑問題

2021-07-26 12:28:12 字數 536 閱讀 1537

思路:這個題目是求乙個點 到平面整點集的最短曼哈頓距離。等價於2次求一維 數軸上的y=|x-x0|+|x-x1|......|x-xn| 求最小的y的值。

分析:1.當數軸上只有2個點,那麼到2個點最短距離是兩個點所構成的線段長度, 此時x的取值範圍[x0,x1](閉區間).

2.當數軸上只有3個點x0,x1,x2, 那麼到3個點最短距離是除去中間那個點所構成的線段長度,此時x=x1。

ac**:
#include

#include

int cmp(const

void*a,const

void*b)

int main()

qsort(x,m,sizeof(int),cmp);

qsort(y,m,sizeof(int),cmp);

for(i=0;i2;i++)

printf("%d\n",min);

}return

0;}

NYOJ 7 街區最短路徑問題

描述 乙個街區有很多住戶,街區的街道只能為東西 南北兩種方向。住戶只可以沿著街道行走。各個街道之間的間隔相等。用 x,y 來表示住戶坐在的街區。例如 4,20 表示使用者在東西方向第4個街道,南北方向第20個街道。現在要建乙個郵局,使得各個住戶到郵局的距離之和最少。求現在這個郵局應該建在那個地方使得...

NYOJ 7 街區最短路徑問題

include include includeint a 30 b 30 c 110 110 c1 110 110 e 30 f 30 a陣列存的是橫座標 b陣列存的是縱座標 因為要對a和b陣列排序 所以有新增兩個陣列e和f儲存未排序時的a與b陣列 c陣列是乙個矩陣 c1陣列是來記錄該位置是否被訪問...

NYOJ 7 街區最短路徑問題

時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 乙個街區有很多住戶,街區的街道只能為東西 南北兩種方向。住戶只可以沿著街道行走。各個街道之間的間隔相等。用 x,y 來表示住戶坐在的街區。例如 4,20 表示使用者在東西方向第4個街道,南北方向第20個街道。現在要建乙個郵局,使...