您的位置:首页 > 其它

UVA - 10041 Vito's Family 求中位数

2014-11-07 17:32 357 查看
题目大意:有一个人要去拜访他的好友,给出他所有好友的位置,问如何才能使他到每个好友的家的距离之和最短

解题思路:求中位数

#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
const int maxn = 500 + 5;
float  arr[maxn];
int main() {
	int test;
	scanf("%d", &test);
	while(test--) {
		int num;
		float temp;
		float ans = 0;
		scanf("%d", &num);
		for(int i = 0; i < num; i++)
			scanf("%f", &arr[i]);
		sort(arr,arr+num);
		temp = (arr[(num-1)/2] + arr[num/2]) / 2;

		for(int i = 0; i < num; i++)
			ans = ans + abs(arr[i]- temp);

		printf("%.0f\n",ans);
	}
	return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: