51nod 1096 距離之和最小

2021-07-24 11:42:29 字數 851 閱讀 4094

1096 距離之和最小

基準時間限制:1 秒 空間限制:131072 kb 分值: 20 

難度:3級演算法題

x軸上有n個點,求x軸上一點使它到這n個點的距離之和最小,輸出這個最小的距離之和。

input

第1行:點的數量n。(2 <= n <= 10000)

第2 - n + 1行:點的位置。(-10^9 <= p[i] <= 10^9)

output

輸出最小距離之和
input示例

5

-1-307

9

output示例

20距離和最小的點就是所有點從小到大排列的中位數

我們都知道2點之間線段最短,輸入n個點,從小到大排列

每乙個點都有自己的對稱點舉例說明

1 2 3 4 5 6 7 

3 5關於4對稱,1 7,2 6;都是一樣的

中位數是4,如果我們選取的點是 2,2到3,5的距離肯定大於4到3,5的距離

你會發現乙個規律,無論你選取哪一點(除4)到達對稱點的距離

總是大於等於4到對稱點的距離

當然如果是6個數,那肯定是下標為3,4的中點(開始下標為1)

#include#includeusing namespace std;

typedef long long ll;

ll num[11000];

ll get_abs(ll a)

int main()

{ int n,i;

scanf("%d",&n);

for(i=0;i

51Nod 1096 距離之和最小

題目大意 中文題 解題思路 把所有數排序以後,找中位數,既是所需要找到點。注意要long long 儲存結果證明如下 我們可以想象現在x軸上有n個點,我們設定的目標點在最左邊,那麼可以算出距離總和ans。目標點往右移動1,相當於ans 左邊點數 右邊點數。那麼目標點到達正 或 兩點之間 前,ans單...

51Nod 1096 距離之和最小

原題鏈結 原題 x軸上有n個點,求x軸上一點使它到這n個點的距離之和最小,輸出這個最小的距離之和。input 第1行 點的數量n。2 n 10000 第2 n 1行 點的位置。10 9 pii 10 9 output 輸出最小距離之和 sample input5 1 3079 sample outp...

51nod 1096 距離之和最小(水題日常)

基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 x軸上有n個點,求x軸上一點使它到這n個點的距離之和最小,輸出這個最小的距離之和。input 第1行 點的數量n。2 n 10000 第2 n 1行 點的位置。10 9 p i 10 9 output 輸出最小距離之...