51Nod 1096 距離之和最小

2021-08-26 23:49:22 字數 629 閱讀 3724

原題鏈結

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

input

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

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

output

輸出最小距離之和

sample input5-1

-3079

sample output

20題解:

一開始雖然想過超時但還是暴力求解了一次,結果tle。

此時我們就需要靠自己去優化,先開始發現尋找的數字在集中區域的話則距離會更小,但是由於範圍很大10正負9次方之間,很難找到數字集中在那個地方,進過計算發現若是取陣列中間的數為所選點,距離之和都比其他要小。

附上**:

#include #include #include using namespace std;

int n,num[10005];

long long res=0;

int main()

sort(num,num+n);

for(int i=0;icout

}

51nod 1096 距離之和最小

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 ou...

51Nod 1096 距離之和最小

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

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 輸出最小距離之...