51 Nod 1110距離之和最小V3

2022-08-11 03:00:18 字數 1098 閱讀 3829

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

輸出最小的帶權距離之和。
5

-1 1

-3 1

0 17 1

9 1

20
由於最右端點-最左端點的距離最大不會超過200000,一次從左往右掃一遍,在過程中維護兩個集合:在當前位置左邊的點,和在當前位置右邊的點。走的時候更新ans即可。詳情如下:

#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

#define inf 0x3f3f3f3f

typedef long long ll;

int n;

int x[10005];

int w[10005];

int id[10005];

bool cmp(int i,int j)

ll l,r;

ll ans=0x3f3f3f3f3f3f3f3f;

int main()

for(int i=0;isort(id,id+n,cmp);

int pos=x[id[0]];

int now=1;

ll pre=0;

for(int i=1;ill current=0;

l=w[id[0]];r-=w[id[0]];

for(;pos<=x[id[n-1]];)

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

return 0;

}

51nod 1110 距離之和最小 V3

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

51Nod 1110 距離之和最小 V3 三分

分類 三分 51nod 1110 距離之和最小 v3 x軸上有n個點,每個點除了包括乙個位置資料x i 還包括乙個權值w i 點p到點p i 的帶權距離 實際距離 p i 的權值。求x軸上一點使它到這n個點的帶權距離之和最小,輸出這個最小的帶權距離之和。input 第1行 點的數量n。2 n 100...

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