51nod1108 距離之和最小 V2

2021-08-04 13:34:10 字數 692 閱讀 7018

我們寫一下就可以發現:

假設符合要求的點的座標為(x, y, z); 那麼ans = |x - x1| + |y - y1| + |z - z1| + |x - x1| + |y - y2| + |z - z2|……

由於求的是曼哈頓距離,x 和 y z座標之間沒有相互制約關係,所以讓x y z 分別為xi yi zi(i = 1 2 3 ……)的中間點就好了

#include

#include

using

namespace

std;

typedef

long

long ll;

const

int maxn = 1e5;

ll x[maxn], y[maxn], z[maxn];

int main()

sort(x + 1, x + n + 1);

sort(y + 1, y + n + 1);

sort(z + 1, z + n + 1);

for(int i = 1; i <= n; i++)

}printf("%lld\n", ans);

return

0;}

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 距離之和最小

原題鏈結 原題 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...