CH0501 貨倉選址

2021-10-04 13:48:37 字數 914 閱讀 8365

題意:在一條數軸上有 n

nn 家商店,它們的座標分別為 a[1

]∼a[

n]

a[1] \sim a[n]

a[1]∼a

[n]。現在需要在數軸上建立一家貨倉,每天清晨,從貨倉到每家商店都要運送一車商品。為了提高效率,求把貨倉建在何處,可以使得貨倉到每家商店的距離之和最小。

思路分析:

把 a [1

]∼a[

n]

a[1] \sim a[n]

a[1]∼a

[n] 排序,設貨倉建在 x

xx 座標處,x

xx 的左側有 p

pp 家商店,右側有 q

qq 家商店。

因此,貨倉應該建在中位數處,即把 a[]

a[\ ]

a[] 排序後,當 n

nn 為奇數時,貨倉建在 a[(

n+1)

/2

]a[(n +1)/2]

a[(n+1

)/2]

處最優;當 n

nn 為偶數時,貨倉建在 a[n

/2]∼

a[n/

2+1]

a[n/2] \sim a[n/2 + 1]

a[n/2]

∼a[n

/2+1

] 之間的任何位置都是最優解。

ac**:

#include

#include

#include

using

namespace std;

const

int n =

100010

;int n;

int q[n]

;int

main()

CH 0501 貨倉選址 中位數

題目大意 在一條數軸上有n家商店,它們的座標分別為 a 1 a n 現在需要在數軸上建立一家貨倉,每天清晨,從貨倉到每家商店都要運送一車商品。為了提高效率,求把貨倉建在何處,可以使得貨倉到每家商店的距離之和最小。題目分析 中位數應用最經典的問題之一了,我們設應該將貨倉建立在座標x處,現在x左邊有p家...

CH0501 貨倉選址(第k小數)

描述 在一條數軸上有n家商店,它們的座標分別為 a 1 a n 現在需要在數軸上建立一家貨倉,每天清晨,從貨倉到每家商店都要運送一車商品。為了提高效率,求把貨倉建在何處,可以使得貨倉到每家商店的距離之和最小。輸入格式 第一行乙個整數n,第二行n個整數a 1 a n 輸出格式 乙個整數,表示距離之和的...

貨倉選址(貪心)

題目鏈結 在一條數軸上有 n 家商店,它們的座標分別為 a1 an。現在需要在數軸上建立一家貨倉,每天清晨,從貨倉到每家商店都要運送一車商品。為了提高效率,求把貨倉建在何處,可以使得貨倉到每家商店的距離之和最小。輸入格式 第一行輸入整數n。第二行n個整數a1 an。輸出格式 輸出乙個整數,表示距離之...