1 条题解
-
0
/* 把A[1]~A[N]排序,设货仓建在X坐标处,X左侧的商店有P家,右侧的商店有Q家。 若P<Q,则货仓的选址向右移动1单位距离,距离之和就会变小 Q-P。 若P>Q,则货仓的选址向左移动会使距离之和变小。 当P=Q时为最优解。 因此货仓应该建在中位数处,即把A排序后,当N为奇数时,货仓建在A[(N+1)/2]最优 当N为偶数,则A[N/2]和A[N/2 +1]都行 */ #include<bits/stdc++.h> using namespace std; int a[110000]; int main() { int n;scanf("%d",&n); for(int i=1;i<=n;i++)scanf("%d",&a[i]); sort(a+1,a+n+1); int mid=(n+1)/2,sum=0; for(int i=1;i<=n;i++)sum+=abs(a[mid]-a[i]); printf("%d\n",sum); return 0; }
- 1
信息
- ID
- 1129
- 时间
- 1000ms
- 内存
- 64MiB
- 难度
- 5
- 标签
- 递交数
- 166
- 已通过
- 70
- 上传者