本文共 621 字,大约阅读时间需要 2 分钟。
在一条数轴上有 N 家商店,它们的坐标分别为 A1~AN。
现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。
为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。
第一行输入整数N。
第二行N个整数A1~AN。
输出一个整数,表示距离之和的最小值。
1≤N≤1000001≤N≤100000,
0≤Ai≤400000≤Ai≤4000046 2 9 1
12
#include#include using namespace std;int n ;int a[1000010];int main(){ cin >> n; for (int i = 0 ; i < n ; i++) cin >> a[i]; sort(a , a + n); int res = 0; for (int i = 0 ; i < n ; i++) res += abs(a[i] - a[n / 2]); cout << res; return 0;}
简单的数学问题,数轴上有多个定点,问数轴上一动点在哪儿可以让它到所有定点的距离之和最小?
若有奇数个点,则找中间点;若有偶数个点,则在中间两点之间即可
怎么找那个点呢?排序后找中位数就行了呀!!!
转载地址:http://xgtki.baihongyu.com/