51nod 距離之和最小v1 v2 v3

2021-08-18 07:40:50 字數 2455 閱讀 6206

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
思路:奇偶討論中位數。

code:

#include using namespace std;

const int ax= 1e4+66;

int a[ax];

int main()

int k;

sort(a,a+n);

if( n % 2 )else

long long res = 0;

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

cout << res << endl;

return 0;

}

1108 距離之和最小 v2

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

難度:4級演算法題

三維空間上有n個點, 求乙個點使它到這n個點的曼哈頓距離之和最小,輸出這個最小的距離之和。

點(x1,y1,z1)到(x2,y2,z2)的曼哈頓距離就是|x1-x2| + |y1-y2| + |z1-z2|。即3維座標差的絕對值之和。

input

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

第2 - n + 1行:每行3個整數,中間用空格分隔,表示點的位置。(-10^9 <= x[i], y[i], z[i] <= 10^9)

output

輸出最小曼哈頓距離之和。
input示例

4

1 1 1

-1 -1 -1

2 2 2

-2 -2 -2

output示例

18
思路:

跟上面的思路一樣,但是這個是三維的,所以每一維分開討論。

code:

#include #define ll long long 

using namespace std;

const int ax = 1e4+66;

int x[ax];

int y[ax];

int z[ax];

int main()

cout << res << endl;

return 0 ;

}

1110 距離之和最小 v3

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

難度:4級演算法題

x軸上有n個點,每個點除了包括乙個位置資料x[i],還包括乙個權值w[i]。點p到點p[i]的帶權距離 = 實際距離 * p[i]的權值。求x軸上一點使它到這n個點的帶權距離之和最小,輸出這個最小的帶權距離之和。

input

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

第2 - n + 1行:每行2個數,中間用空格分隔,分別是點的位置及權值。(-10^5 <= x[i] <= 10^5,1 <= w[i] <= 10^5)

output

輸出最小的帶權距離之和。
input示例

5

-1 1

-3 1

0 17 1

9 1

output示例

20
思路:權值就當做這個點重複出現的次數。
code:
#include #define ll long long 

using namespace std;

const ll ax = 1e4+66;

struct nodea[ax];

bool cmp( const node &a , const node &b )

int main()

sort( a , a + n , cmp );

ll tmp = len / 2 + 1 ;

ll mm;

for( ll i = 0 ; i < n ; i++ )else

} ll res = 0;

for( ll i = 0 ; i < n ; i++ )

cout << res << endl;

return 0;

}

51nod1108 距離之和最小 V2

我們寫一下就可以發現 假設符合要求的點的座標為 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 ...

51nod 1110 距離之和最小 V3

1110 距離之和最小 v3 基準時間限制 1 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 x軸上有n個點,每個點除了包括乙個位置資料x i 還包括乙個權值w i 點p到點p i 的帶權距離 實際距離 p i 的權值。求x軸上一點使它到這n個點的帶權距離之和最小,輸出這個最小的...

51 Nod 1110距離之和最小V3

1 秒131,072 kb 40 分 4 級題 x軸上有n個點,每個點除了包括乙個位置資料x i 還包括乙個權值w i 點p到點p i 的帶權距離 實際距離 p i 的權值。求x軸上一點使它到這n個點的帶權距離之和最小,輸出這個最小的帶權距離之和。收起第1行 點的數量n。2 n 10000 第2 n...