乙個數軸,上面有很多的點,要求找乙個點,到所有點的距離之和的值最小
在一條數軸上有 n 家商店,它們的座標分別為 a1 ~ an。
現在需要在數軸上建立一家貨倉,每天清晨,從貨倉到每家商店都要運送一車商品。
為了提高效率,求把貨倉建在何處,可以使得貨倉到每家商店的距離之和最小。
輸入格式
第一行輸入整數n。
第二行n個整數a1~an。
輸出格式
輸出乙個整數,表示距離之和的最小值。
資料範圍
1≤n≤100000,
0≤ai≤40000
輸入樣例:、
4
6 2 9 1
輸出樣例:
12
思路:就是找到中位數,若在超出這個中間範圍的兩邊去選取點的話,就會多加左邊部分或者右邊部分,所以先將原陣列進行排序,然後從兩邊開始,兩個數一組的進行分組找到中位數;裡面涉及到上下取整的問題,這個可以考慮兩個連著的數比如說5_6,選哪個都無所謂,所以不用具體分析,**如下
#include
#include
using namespace std;
const
int n =
100010
;int a[n]
;int n;
intmain()
資料範圍
1≤n,m≤100
輸入樣例:
3 3
輸出樣例:
1 2 3
8 9 4
7 6 5
看標題就能理解,不多贅述了, 主要就是靠乙個標記陣列進行簡化複雜的**,值得注意的是四個方向並不是平常我們座標系的那種方向,而是矩陣行列加一減一來判斷上下左右的方向
**如下:
#include
#include
using namespace std;
const
int n =
110;
int q[n]
[n];
int dx=
, dy=
;int
main()
x = a, y = b;
}for
(int i =
0; i < n; i ++
)return0;
}
貨倉選址(貪心)
題目鏈結 在一條數軸上有 n 家商店,它們的座標分別為 a1 an。現在需要在數軸上建立一家貨倉,每天清晨,從貨倉到每家商店都要運送一車商品。為了提高效率,求把貨倉建在何處,可以使得貨倉到每家商店的距離之和最小。輸入格式 第一行輸入整數n。第二行n個整數a1 an。輸出格式 輸出乙個整數,表示距離之...
貨倉選址 貪心
貪心問題,一般就是乙個思維題,那麼下面這個問題用到乙個小小的知識,在數軸上有n個點,在數軸找一點x,使得所有點到x點距離之和最小 結論 當n為奇數時,x為數軸上點的中值點 當n為偶數時,x為數軸上點的兩個中值點中間區域的任何乙個點 證明 當n為奇數時,x選取中值點右邊任何乙個點,距離中值點距離為le...
貨倉選址問題
筆記在一條數軸上有 n 家商店,它們的座標分別為 a1 an。現在需要在數軸上建立一家貨倉,每天清晨,從貨倉到每家商店都要運送一車商品。為了提高效率,求把貨倉建在何處,可以使得貨倉到每家商店的距離之和最小。輸入格式 第一行輸入整數n。第二行n個整數a1 an。輸出格式 輸出乙個整數,表示距離之和的最...