筆記在一條數軸上有 n 家商店,它們的座標分別為 a1~an。
現在需要在數軸上建立一家貨倉,每天清晨,從貨倉到每家商店都要運送一車商品。
為了提高效率,求把貨倉建在何處,可以使得貨倉到每家商店的距離之和最小。
輸入格式
第一行輸入整數n。
第二行n個整數a1~an。
輸出格式
輸出乙個整數,表示距離之和的最小值。
資料範圍
1≤n≤100000,
0≤ai≤40000
輸入樣例
462
91
輸出樣例
12
這道題是利用了數學中的絕對值不等式的思想,在一維中任取一點到兩個點的距離之和最短的條件是,這個點位於兩點之間的區間上
做法:1.先將各個點按照位置進行排序
2.找到位置是中位數的點,並記錄(偶數是兩個點,選擇哪個都可以)
3.計算各個點到這個點的距離之和,即我們所求的最短距離之和。
拓展:1.一維擴充套件到二維:3167. 星星還是樹
2.擴充套件到d維:需要用模擬退火演算法(難度高)。
**:
#include
#include
using
namespace std;
const
int n =
1e6+10;
int a[n]
;int
main()
1 9 貨倉選址問題 Python
在一條數軸上有 n 家商店,它們的座標分別為 a1 an。現在需要在數軸上建立一家貨倉,每天清晨,從貨倉到每家商店都要運送一車商品。為了提高效率,求把貨倉建在何處,可以使得貨倉到每家商店的距離之和最小。輸入格式 第一行輸入整數n。第二行n個整數a1 an。輸出格式 輸出乙個整數,表示距離之和的最小值...
貨倉選址(貪心)
題目鏈結 在一條數軸上有 n 家商店,它們的座標分別為 a1 an。現在需要在數軸上建立一家貨倉,每天清晨,從貨倉到每家商店都要運送一車商品。為了提高效率,求把貨倉建在何處,可以使得貨倉到每家商店的距離之和最小。輸入格式 第一行輸入整數n。第二行n個整數a1 an。輸出格式 輸出乙個整數,表示距離之...
貨倉選址 貪心
貪心問題,一般就是乙個思維題,那麼下面這個問題用到乙個小小的知識,在數軸上有n個點,在數軸找一點x,使得所有點到x點距離之和最小 結論 當n為奇數時,x為數軸上點的中值點 當n為偶數時,x為數軸上點的兩個中值點中間區域的任何乙個點 證明 當n為奇數時,x選取中值點右邊任何乙個點,距離中值點距離為le...