您的位置:首页 > 其它

HDU - 2083 - 简易版之最短距离

2017-02-17 21:43 113 查看

HDU - 2083 - 简易版之最短距离

大水
4000


题目



解题过程

先是一愣;

后来发现是中位数;

直接sort排序后,取中间数再与其他数的差求和就行了。

Ac代码

// 2083 - 简易版之最短距离

int main() {
const int maxn = 505;
int M, N, sum, x, num[maxn];
cin >> M;
while (M--) {
cin >> N;
memset(num, 0, sizeof(num));
sum = 0;
for (int i = 0; i < N; i++) {
cin >> num[i];
}
// 排序 + 寻找中位数
sort(num, num + N);
x = num[N / 2];
for (int i = 0; i < N; i++) {
sum += abs(num[i] - x);
}
cout << sum << endl;
}
return 0;
}


小结

就一点,别把初高中学的数学小知识全忘了就好!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: