【問題描述】
一些村莊建在一條筆直的高速公路邊上,我們用一條座標軸來描述這條公路,每個村莊的座標都是整數,沒有兩個村莊的座標相同。兩個村莊的距離定義為座標之差的絕對值。我們需要在某些村莊建立兩個郵局。使每個村莊使用與它距離最近的郵局,建立郵局的原則是:所有村莊到各自使用的郵局的距離總和最小。
【輸入格式】
第一行:n ,表示有n個村莊。
第二行:a1 a2 a3 .. an 表示n個村莊的座標。
【輸出格式】
第一行:表示最小距離總和。
【輸入樣例】
10
1 2 3 6 7 9 11 22 44 50
【輸出樣例】
43
【資料範圍】
1<=n<=10000
1<=a[i]<=1000000000
題目大意:給了你x軸上一些點的座標,要求你選取其中的兩個點使得其他點到這兩個點的距離總和最小。
演算法:中位數的應用+列舉
乍一看不好求,但是如果題目只需要求乙個點,那麼顯然由中位數原理知這個點是所有點的中位點。然而這個題要求修兩個點的情形,該怎麼辦呢?
這裡有一種思路:把全部點按座標從小到大排序後,分成兩個部分,那麼這兩個部分的中位點建立郵局顯然使這兩個部分中的所有點都有到郵局的最小值,列舉這兩個部分的中間點i,求出兩個部分的最小距離並取最小值就是答案。
中位數的中位數
參照王曉東的演算法設計 中位數的中位數,即將一串數分成n段,求其排好序了的中間那個數,再把這些所有中位數再求一次中位數。for int i 0 i r p 4 5 i 找中位數的中位數,r p 4即上面所說的n 5 int x lineselect a,p,p r p 4 5,r p 4 10 線性...
二維郵局選址問題 帶權中位數
演算法設計練習作業,郵局選址問題,將自己寫的分享,有問題請指正,希望共同學習。關於郵局選址問題的理論知識就不贅述了,網上有講解的。include include include using namespace std 郵局選址問題,帶權中位數 輸入的座標不能相同,即x或y各自是n個不同的數,該程式為...
BFPRT(中位數的中位數)演算法
又稱為 中位數的中位數演算法 該演算法由 blum floyd pratt rivest tarjan 在1973年提出,最壞時間複雜度為o n 最差的空間複雜度為o logn 演算法步驟 1 將 n 個元素劃分為 n 5 個組,每組 5 個元素,若有剩餘,捨去 2 使用排序方法找到 n 5 個組中...