南陽 7 街區最短路徑問題

2021-06-20 01:20:40 字數 686 閱讀 4558

解題思路:

題意很明確,關鍵就是求郵局的位置,由於所有住戶座標到該點的距離和最短,其實就是縱橫座標

中位數。即先排序,然後計算中位數的序號。接著就容易求出各個住戶到郵局的距離之和即可

演算法:

n 個數 a[1]、a[2]、……、a[n]; 求 min(∑|a[i]-x|)

首先 把這 n 數進行排序 ans = ∑ (a[n-i]-a[i])  1<=i<=n/2;  其實就是在乙個座標軸上有 n 個點 求乙個點到所以點的最短距離和 ,由於任意兩點 x1 、x2,要使

的距離和最小 則  x 必須在 x1  x2 之間就行了,所以 n 個頂點排完序後 只要把 x 放在這 n 個數之間就行#include#include#includeint cmp(const void *a,const void *b)

int main()

{ int test,n,sum,i;

int num_1[100],num_2[100];

scanf("%d",&test);

while(test--)

{scanf("%d",&n);

for(i=0;i

南陽理工 7 街區最短路徑問題

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

南陽理工 7街區最短路徑問題

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

南陽ACM7 街區最短路徑問題

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