[2012校赛新生组]狡兔三窟
2014-03-29 22:03
260 查看
题目:
传说中狡兔有三窟,但是作为新时代的兔子,它们有N个窟。在一维坐标系中,这N个窟分别位于1,2,3,......,N这些位置上,并且有N只兔子散落在天涯,它们的位置分别是x1,x2,x3,......,xN当有一只兔子发现老鹰出没时,它就会向所有的兔子发出警告,于是这N只兔子就会快速躲到其中一个洞中,每个洞最多只能容纳一只兔子。如果第i只兔子原来的位置是xi,它跑到了第j个洞,那么它跑的路程就是|xi-xj|。现在请你计算一下所有这N只兔子全部跑到洞中的最小路程和是多少。
题意:
因为有N个兔子和N个窟,所以只需要将兔子排序并把它排着安排到1-n中就可以了。
不过要注意路程和要用long(c是long long?)
传说中狡兔有三窟,但是作为新时代的兔子,它们有N个窟。在一维坐标系中,这N个窟分别位于1,2,3,......,N这些位置上,并且有N只兔子散落在天涯,它们的位置分别是x1,x2,x3,......,xN当有一只兔子发现老鹰出没时,它就会向所有的兔子发出警告,于是这N只兔子就会快速躲到其中一个洞中,每个洞最多只能容纳一只兔子。如果第i只兔子原来的位置是xi,它跑到了第j个洞,那么它跑的路程就是|xi-xj|。现在请你计算一下所有这N只兔子全部跑到洞中的最小路程和是多少。
题意:
因为有N个兔子和N个窟,所以只需要将兔子排序并把它排着安排到1-n中就可以了。
不过要注意路程和要用long(c是long long?)
import java.io.*; import java.util.Arrays; public class Main { StreamTokenizer in; PrintWriter out; public static void main(String[] args) throws IOException { Main ma = new Main(); ma.go(); } void go() throws IOException { in = new StreamTokenizer(new BufferedReader (new InputStreamReader(System.in))); out = new PrintWriter(new OutputStreamWriter(System.out)); int T = nextInt(); long[] C = new long[T]; for(int j=0;j<T;j++){ int N = nextInt(); long res = 0; int[] rubbit = new int[N+1]; for(int i=1;i<=N;i++) rubbit[i]=nextInt(); Arrays.sort(rubbit); for(int i=1;i<=N;i++) res+=Math.abs((rubbit[i]-i)); C[j]=res; } for(int i=0;i<T;i++) System.out.println(C[i]); } public int nextInt() throws IOException{ in.nextToken(); return (int)in.nval; } }
相关文章推荐
- [2012校赛新生组]稳定排序的题目
- [2012校赛新生组]反恐精英_求连续数字的最小数字个数
- [2012校赛新生组]一字棋
- 2012中南大学校赛H题 - 缩点最小割
- 2012中南大学校赛D题 - 很好的思维题...
- BZOJ3092 : [FDU2012校赛] A Famous King’s Trip
- 【BZOJ】3093: [Fdu校赛2012] A Famous Game
- 【BZOJ】【3093】【FDU校赛2012】A Famous Game
- 一道关于DOTA的模拟题(CSU2012校赛)
- Bzoj3093 [Fdu校赛2012] A Famous Game
- 2012中南大学校赛F题 - 旋转卡壳的思维...
- 2991: [2012北大校赛]Do Not Gamble
- HUST2012校赛,USC2013新队员训练第二场
- 2012山东大学校赛,高年级组【Problem F 一字棋 】
- BZOJ 3093: [Fdu校赛2012] A Famous Game
- BZOJ 3093: [Fdu校赛2012] A Famous Game
- ZJUT 2012校赛决赛-涂颜色
- BZOJ 3093 [Fdu校赛2012] A Famous Game
- [2014校赛新生组]简单,简单?
- WWDC2012:Objective-C的新特性