hdu2083

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

先排序,取中位数。

import java.util.Arrays;
import java.util.Scanner;

public class hdu2083 {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        for (int i = 0; i < n; i++) {
            int nn = sc.nextInt();
            int[] aa = new int[nn];
            for (int j = 0; j < aa.length; j++) {
                aa[j] = sc.nextInt();                
            }
            Arrays.sort(aa);
            int sum = 0;
            for (int j = 0; j < aa.length; j++) {
                sum += Math.abs(aa[j]-aa[nn/2]);                
            }
            System.out.println(sum);
        }
        sc.close();
    }
}

 

posted @ 2024-05-16 00:14  XiaohuangTX  阅读(2)  评论(0编辑  收藏  举报