Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
JAVA 解法,供大家参考先将他们移动到同一横排,这横排应该是他们纵坐标的中位数,才能使得此过程总步数最少。然后要把他们紧凑起来。我们先把横坐标排序,并假设起点是a,那么我们就是要求i=1~n,abs(a+i - xi)的加和。即i=1~n,abs(a-(xi - i))的加和。我们构建一个新数列zi = xi - i,当a 等于z的中位数时原式的值最小。 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.LinkedList; import java.util.List; import java.util.StringTokenizer; public class Main { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { // TODO Auto-generated method stub BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int num = Integer.valueOf(br.readLine()); List<Integer> xList = new ArrayList<Integer>(); List<Integer> yList = new ArrayList<Integer>(); for (int i = 0; i < num; i++) { StringTokenizer stoken = new StringTokenizer( br.readLine()," "); xList.add(Integer.valueOf(stoken.nextToken())); yList.add(Integer.valueOf(stoken.nextToken())); } List<Integer> a = new ArrayList<Integer>(); Collections.sort(xList); for (int i = 0; i < xList.size(); i++) { a.add(xList.get(i) - i); } Collections.sort(a, new MyComparator()); // System.out.println( a ); Collections.sort(yList, new MyComparator()); // System.out.println( yList ); long sum = 0; int X = a.get(num/2); int Y = yList.get(num/2); for (int i = 0; i < yList.size() ; i++) { sum +=Math.abs ( yList.get(i) - Y ); } // System.out.println(sum); for (int i = 0; i < a.size(); i++) { sum += Math.abs(a.get(i)- X); } System.out.println(sum); br.close(); } } class MyComparator implements Comparator<Integer> { public int compare(Integer a , Integer b) { if( a > b ) { return 1; } else if( a.equals(b)) { return 0; } else { return -1; } } } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator