`
Dev|il
  • 浏览: 126146 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

HDU2083简易版之最短距离

 
阅读更多
简易版之最短距离
Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 4679    Accepted Submission(s): 2069


Problem Description
寒假的时候,ACBOY要去拜访很多朋友,恰巧他所有朋友的家都处在坐标平面的X轴上。ACBOY可以任意选择一个朋友的家开始访问,但是每次访问后他都必须回到出发点,然后才能去访问下一个朋友。
比如有4个朋友,对应的X轴坐标分别为1, 2, 3, 4。当ACBOY选择坐标为2的点做为出发点时,则他最终需要的时间为 |1-2|+|2-2|+|3-2|+|4-2| = 4。
现在给出N个朋友的坐标,那么ACBOY应该怎么走才会花费时间最少呢?



Input
输入首先是一个正整数M,表示M个测试实例。每个实例的输入有2行,首先是一个正整数N(N <= 500),表示有N个朋友,下一行是N个正整数,表示具体的坐标(所有数据均<=10000).



Output
对于每一个测试实例,请输出访问完所有朋友所花的最少时间,每个实例的输出占一行。



Sample Input
2
2
2 4
3
2 4 6


Sample Output
2
4

水题
#include <iostream>
using namespace std;

const int MAX = 510;

int a[MAX];

int cmp(const void *a, const void *b)
{
	return *(int *)a - *(int *)b;
}
//算法思路,先对路径进行排序,找出中间点 
//1.如果朋友为基数 则中间点为 n / 2 
//2.如果朋友为偶数,则中间点可能为 n / 2 n / 2 - 1
int main()
{
	int t, n, i, sum, temp;
	cin>>t;
	while(t--)
	{
		temp = sum = 0;
		cin>>n;
		for(i = 0; i < n; i++)
			cin>>a[i];
		qsort(a, n, sizeof(int), cmp);
		for(i = 0; i < n; i++)
			sum += abs(a[i] - a[n / 2]);
		if(n % 2 == 0)
		{
			for(i = 0; i < n; i++)
				temp += abs(a[i] - a[n / 2 - 1]);
			sum = sum > temp ? temp : sum;
		}
		cout<<sum<<endl;
	}
	return 0;
}
分享到:
评论

相关推荐

    (HDUACM2010版_08)母函数

    (HDUACM2010版_08)母函数(HDUACM2010版_08)母函数(HDUACM2010版_08)母函数(HDUACM2010版_08)母函数(HDUACM2010版_08)母函数(HDUACM2010版_08)母函数

    (HDUACM201303版_07)背包专题

    杭电ACM课件2014版之 (HDUACM201303版_07)背包专题

    (HDUACM2010版_13)二分匹配及其应用

    杭电ACM课件2014版之(HDUACM2010版_13)二分匹配及其应用

    HDU_2010.rar_hdu 2010_hdu 20_hdu acm20

    【标题】"HDU_2010.rar"是一个压缩包文件,其中包含了与"HDU 2010"相关的资源,特别是针对"HDU ACM20"比赛的编程题目。"hdu 2010"和"hdu 20"可能是该比赛的不同简称或分类,而"hdu acm20"可能指的是该赛事的第20届...

    HDU_ACM培训课件(完整版)

    通过完整版的HDU_ACM培训课件,学员可以从理论到实践全面提高自己的编程能力和竞赛水平,为在ACM竞赛中取得好成绩打下坚实基础。对于想要深入理解和掌握算法及编程技巧的人来说,这套课件是一份宝贵的资源。

    (HDUACM201403版_04)递推求解

    杭电ACM课件2014版之 (HDUACM201403版_04)递推求解

    HDU题目java实现

    8. **图论与树**:HDU题目中可能涉及图的遍历(深度优先搜索DFS、广度优先搜索BFS)、树的遍历(前序、中序、后序)以及最小生成树、最短路径等算法。 9. **动态规划**:这是一种优化策略,通过构建状态转移方程来...

    HDUACM2010版_14)Hash及应用

    HDUACM2010版_14)Hash及应用HDUACM2010版_14)Hash及应用HDUACM2010版_14)Hash及应用HDUACM2010版_14)Hash及应用

    hdu.rar_hdu

    HDU(杭州电子科技大学在线评测系统)是一个深受程序员喜爱的在线编程练习平台,它提供了丰富的算法题目供用户挑战,帮助他们提升编程技能和算法理解能力。"hdu.rar_hdu"这个压缩包文件很可能是某位程序员整理的他在...

    HDU DP动态规划

    【标题】"HDU DP动态规划"涉及到的是在算法领域中的动态规划(Dynamic Programming,简称DP)技术,这是解决复杂问题的一种高效方法,尤其适用于有重叠子问题和最优子结构的问题。动态规划通常用于优化多阶段决策...

    HDU 不容易系列之二 2042

    你活的不容易,我活的不容易,他活的也不容易。不过,如果你看了下面的故事,就会知道,有位老汉比你还不容易。

    HDUACM201303版_10搜索入门

    在《HDUACM201303版_10搜索入门》的课程或资料中,我们可以期待学习到以下关键知识点: 1. **宽度优先搜索(Breadth-First Search, BFS)**:BFS是一种用于遍历或搜索树或图的算法。它按照层次顺序进行搜索,优先...

    HDU图论题目分类

    HDU图论题目分类 HDU图论题目分类是指在杭州电子科技大学(Hangzhou Dianzi University)的判题平台HDU OJ(Online Judge)上收录的一系列图论题目的分类。本分类涵盖了图论领域的多种类型的题目,涉及到图论的基本...

    hdu.rar_HDU 1089.cpp_OJ题求和_hdu_horsekw5_杭电obj

    【标题】"hdu.rar_HDU 1089.cpp_OJ题求和_hdu_horsekw5_杭电obj" 提供的信息是关于一个压缩文件,其中包含了一个名为 "HDU 1089.cpp" 的源代码文件,这个文件是为了解决杭州电子科技大学(Hangzhou Dianzi ...

    最短路径 贪心实现代码

    最短路径 贪心实现代码 hdu 最短路 dijkstra 算法

    ACM HDU题目分类

    ACM HDU 题目分类 ACM HDU 题目分类是指对 HDU 在线判题系统中题目的分类,总结了大约十来个分类。这些分类将有助于编程选手更好地理解和解决问题。 DP 问题 DP(Dynamic Programming,动态规划)是一种非常重要...

    hdu1250高精度加法

    在计算机科学与编程竞赛中,处理大整数运算(特别是加法、减法、乘法等)是常见的需求之一。当数字的位数超过了标准数据类型(如`int`、`long`等)所能表示的最大值时,就需要采用特殊的算法来实现这些运算,这种...

    (HDUACM2010版_06)并查集(最小生成树)

    (HDUACM2010版_06)并查集(最小生成树(HDUACM2010版_06)并查集(最小生成树(HDUACM2010版_06)并查集(最小生成树(HDUACM2010版_06)并查集(最小生成树

Global site tag (gtag.js) - Google Analytics