1110 距離之和最小 V3

2022-08-02 23:09:15 字數 1125 閱讀 7772

1110 距離之和最小 v3

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

x軸上有n個點,每個點除了包括乙個位置資料x[i],還包括乙個權值w[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

思路:中位數。

將點的權值看成多個點就行。然後求中位數。

1 #include2 #include3 #include4 #include5

using

namespace

std;

6 typedef struct

node

7 ss;

11 ss id[20000

];12

bool

cmp(node p,node q)

1316 typedef long

long

ll;17

int main(void)18

27 ll mid = (sum+1)/2

;28 sort(id,id+n,cmp);

29 ll ak = 0;30

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

3137}38

int x =id[i].x;sum = 0;39

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

4043 printf("

%lld\n

",sum);

44return0;

45 }

1110 距離之和最小 V3

x軸上有n個點,每個點除了包括乙個位置資料x i 還包括乙個權值w i 點p到點p i 的帶權距離 實際距離 p i 的權值。求x軸上一點使它到這n個點的帶權距離之和最小,輸出這個最小的帶權距離之和。input 第1行 點的數量n。2 n 10000 第2 n 1行 每行2個數,中間用空格分隔,分別...

1110 距離之和最小 V3

x軸上有n個點,每個點除了包括乙個位置資料x i 還包括乙個權值w i 點p到點p i 的帶權距離 實際距離 p i 的權值。求x軸上一點使它到這n個點的帶權距離之和最小,輸出這個最小的帶權距離之和。收起第1行 點的數量n。2 n 10000 第2 n 1行 每行2個數,中間用空格分隔,分別是點的位...

51nod 1110 距離之和最小 V3

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