1110 距離之和最小 v3
基準時間限制:1 秒 空間限制:131072 kb
x軸上有n個點,每個點除了包括乙個位置資料x[i],還包括乙個權值w[i]。該點到其他點的帶權距離 = 實際距離 * 權值。求x軸上一點使它到這n個點的帶權距離之和最小,輸出這個最小的帶權距離之和。
input
第1行:點的數量n。(2 <= n <= 10000)output第2 - n + 1行:每行2個數,中間用空格分隔,分別是點的位置及權值。(-10^5 <= x[i] <= 10^5,1 <= w[i] <= 10^5)
輸出最小的帶權距離之和。input示例
5output示例-1 1
-3 1
0 17 1
9 1
20思路:中位數。
將點的權值看成多個點就行。然後求中位數。
1 #include2 #include3 #include4 #include5using
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個點的帶權距離之和最小,輸出這個最小的...