杭电 2083 简易版之最短距离

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2083

解题思路:看到数据不大,直接算出每一种不同起点对应的距离找出最小值就可以了

反思:其实最开始看到题目,想的是,将这一组数按升序排列好,然后中间的那几个点就很有可能是距离小的点,后来想到点与点的距离也不是均衡的,所以不能这样做

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main()
{
	int ncase,n;
	int a[500];
	int i;
	long long sum=0;
	while(scanf("%d",&ncase)!=EOF)
	{
		while(ncase--)
		{
			int j=0;
			long long min=5000000;
		    scanf("%d",&n);
		for(i=0;i<n;i++)
			scanf("%d",&a[i]);
		for(i=0;i<n;i++)
		{
			sum=0;
			for(j=0;j<n;j++)
			{
				sum+=abs(a[i]-a[j]);
			}
			if(sum<min)
				min=sum;

		}
		printf("%lld\n",min);
		}
	}

}

  

时间: 2024-11-17 04:25:39

杭电 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(&

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可以任意选择一个朋友的家开始访问,但是每次访问后他都必须回到出发点

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能够随意选择一个朋友的家開始訪问.可是每次訪问后他都必须回到出发点,然后才干去訪

杭电2025指针版

#include<stdio.h>int main(){ char a[103]; while(scanf("%s",a)!=EOF) { char *p=a,ch=*p; while(*(++p)) if(*p>ch) ch=*p; p=a; while(*p) { if(*p==ch) printf("%c(max)",*p); else printf("%c",*p); p++; } putchar('\n'); } re

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

杭电ACM分类

杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze 广度搜索1006 Redraiment猜想 数论:容斥定理1007 童年生活二三事 递推题1008 University 简单hash1009 目标柏林 简单模拟题1010 Rails 模拟题(堆栈)1011 Box of Bricks 简单题1012 IMMEDIATE DECODABILITY

【转】对于杭电OJ题目的分类

[好像博客园不能直接转载,所以我复制过来了..] 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze 广度搜索1006 Redraiment猜想 数论:容斥定理1007 童年生活二三事 递推题1008 University 简单hash1009 目标柏林 简单模拟题1010 Rails 模拟题(堆栈)1011 Box of Bricks 简单题1012 IMMEDI