hdoj 2083 简易版之最短距离

简易版之最短距离

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 13510    Accepted Submission(s):
6000

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<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
using namespace std;
bool cmp(int a,int b)
{
	return a<b;
}
int main()
{
	int n,m,j,i,s,t,sum;
	int a[1100];
	scanf("%d",&n);
	while(n--)
	{
		scanf("%d",&m);
		sum=0;s=0;
		for(i=0;i<m;i++)
		scanf("%d",&a[i]);
		sort(a,a+m,cmp);
		if(m%2!=0)
		{
			s=(m-1)/2;
		    for(i=0;i<m;i++)
		    {
			    sum+=abs(a[i]-a[s]);
		    }
	    }
		else
		{
			s=m/2-1;
			for(i=0;i<m;i++)
		    {
			    sum+=abs(a[i]-a[s]);
		    }
		}
		printf("%d\n",sum);
		sum=0;
	}
	return 0;
}

  

时间: 2024-10-12 21:14:41

hdoj 2083 简易版之最短距离的相关文章

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

HDU 2083 简易版之最短距离 /* HDU 2083 简易版之最短距离 */ #include <cstdio> #include <algorithm> using namespace std; const int maxn = 505; int a[maxn]; int main() { #ifdef _LOCAL freopen("D:\\input.txt", "r", stdin); #endif int t; scanf(&

杭电 2083 简易版之最短距离

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2083 解题思路:看到数据不大,直接算出每一种不同起点对应的距离找出最小值就可以了 反思:其实最开始看到题目,想的是,将这一组数按升序排列好,然后中间的那几个点就很有可能是距离小的点,后来想到点与点的距离也不是均衡的,所以不能这样做 #include<stdio.h> #include<math.h> #include<stdlib.h> int main() { int n

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

找到中位数 , 根据对称性 , 当中位数需要两个数取中值的时候不需要取 , 只需要其中的任意一个数几个 例如四个数 1 , 2 , 3 , 4 . 这四个数 , 其中的 2 和 3 都可以 . 然后求 该点到所有点的 题目要求 解之和 就OK了 1 #include<stdio.h> 2 #include<string.h> 3 #include<math.h> 4 #include<iostream> 5 #include<algorithm>

杭电2083(简易版之最短距离)

简易版之最短距离 Time Limit : 1000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submission(s) : 2   Accepted Submission(s) : 2 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description 寒假的时候,ACBOY要去拜访很多朋友,恰巧他所有朋友的家都

简易版之最短距离

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 13709    Accepted Submission(s): 6083 Problem Description 寒假的时候,ACBOY要去拜訪非常多朋友,恰巧他全部朋友的家都处在坐标平面的X轴上.ACBOY能够随意选择一个朋友的家開始訪问.可是每次訪问后他都必须回到出发点,然后才干去訪

hdu2083 简易版之最短距离

点A和点B之间任意一点到A的距离+到B的距离=|AB|,而AB外的一点到A的距离+到B的距离>|AB|: #include<math.h> #include<stdio.h> #include<stdlib.h> #include<string.h> int cmp(const void *a,const void *b) { return *(int *)a-*(int *)b; } int main(void) { int t,n; int x[5

hdoj:2083

简易版之最短距离 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 17644    Accepted Submission(s): 7904 Problem Description 寒假的时候,ACBOY要去拜访很多朋友,恰巧他所有朋友的家都处在坐标平面的X轴上.ACBOY可以任意选择一个朋友的家开始访问,但是每次访问后他都必须回到出发点

简易版DES加密和解密详解

在DES密码里,是如何进行加密和解密的呢?这里采用DES的简易版来进行说明. 二进制数据的变换 由于不仅仅是DES密码,在其它的现代密码中也应用了二进制数据,所以无论是文章还是数字,都需要将明文变换为二进制数据,如图表所示,这里仅将使用的16字符(其中含有1个没有意义的空字符),将每个字符都对应不同的4bit的二进制编码进行变换,将明文表示成"0"和"1"的系列 表2.8 表2.9 本文部分参考自漫画密码,此文博主花了几个小时的时间整理,转载请注明http://ww

简易版聊天系统实现 Socket VS NIO两种实现方式

说是简单聊天系统,压根不能算是一个系统,顶多算个雏形.本文重点不在聊天系统设计和实现上,而是通过实现类似效果,展示下NIO 和Socket两种编程方式的差异性.说是Socket与NIO的编程方式,不太严谨,因为NIO的底层也是通过Socket实现的,但又想不出非常好的题目,就这样吧. 主要内容 Socket方式实现简易聊天效果 NIO方式实现简易聊天效果 两种方式的性能对比 前言 预期效果,是客户端之间进行"广播"式聊天,类似于QQ群聊天.希望以后有机会,以此简易版为基础,不断演进,演