nyoj 街區最短路徑問題

2021-07-30 15:11:57 字數 935 閱讀 5453

時間限制:3秒 記憶體限制:128兆

44 次提交 30 次通過

題目描述

乙個街區有很多住戶,街區的街道只能為東西、南北兩種方向。

住戶只可以沿著街道行走。

各個街道之間的間隔相等。

用(x,y)來表示住戶坐在的街區。

例如(4,20),表示使用者在東西方向第4個街道,南北方向第20個街道。

現在要建乙個郵局,使得各個住戶到郵局的距離之和最少。

求現在這個郵局應該建在那個地方使得所有住戶距離之和最小;

輸入第一行乙個整數n<20,表示有n組測試資料,下面是n組資料;

每組第一行乙個整數m<20,表示本組有m個住戶,下面的m行每行有兩個整數0

輸出每組資料輸出到郵局最小的距離和,回車結束;

樣例輸入

2

31 1

2 11 2

52 9

5 20

11 9

1 11 20

樣例輸出

2

思路:此題為數學類問題,目的是為了找乙個點,使這個點到每條邊的距離最短,

本題中,可以用乙個簡單地思路,分別把座標x,y,分開,

那麼這道題就簡化為:在給定的m個點中,求每個點到x的距離的和的最小值,

即:min,故本題的結果應該是:距離=min+min。

為了是問題更簡化,可以先將x座標y座標分別按公升序排序,

然後用最後乙個數減去第乙個,倒數第二個減去正數第二個......以此類推。

(這樣做的原因是,想要找出一點,使該點到兩個端點的距離的和最小,

則這個點必落在兩個端點之間。)

**:#include#define max 30

int main()

}} for(i=0;ib[j+1])

}} for(i=0;i

NYOJ 街區最短路徑問題

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

NYOJ 街區最短路徑問題

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

NYoj 街區最短路徑問題

時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描寫敘述 乙個街區有非常多住戶,街區的街道僅僅能為東西 南北兩種方向。住戶僅僅能夠沿著街道行走。各個街道之間的間隔相等。用 x,y 來表示住戶坐在的街區。比如 4,20 表示使用者在東西方向第4個街道,南北方向第20個街道。如今要建乙...