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 |
用数组为什么内存超呢?import java.util.Scanner; public class Main { private static int[][] a = new int[100000][2];// 存D关系为1的 private static int[][] b = new int[100000][2];// 存关系为2的 private static int i = 0;// 表示a实际的元素个数 private static int j = 0;// 表示b实际的元素个数 private static int sum = 0;// 存假话的个数 public static void insertA(int v1, int v2) { a[i][0] = v1; a[i][1] = v2; i++; } public static void insertB(int v1, int v2) { b[j][0] = v1; b[j][1] = v2; j++; } public static void getSum(int n, int d, int v1, int v2) { if (v1 > n || v2 > n) { sum++; return; } else if (d == 2 && v1 == v2) { sum++; return; } else if (d == 1) { for (int k = 0; k < j; k++) { if ((b[k][0] == v1 && b[k][1] == v2) || (b[k][0] == v2 && b[k][1] == v1)) { sum++; return; } } } else if (d == 2) { for (int k = 0; k < j; k++) { if (b[k][0] == v2 && b[k][1] == v1) { sum++; return; } } for (int k = 0; k < i; k++) { if ((a[k][0] == v1 && a[k][1] == v2) || (a[k][0] == v2 && a[k][1] == v1)) { sum++; return; } } } // 将正确的话分别分类存入A和B数组 if (d == 1) { if (v1 != v2) insertA(v1, v2); } else if (d == 2) { insertB(v1, v2); } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int k = sc.nextInt(); for (int i = 0; i < k; i++) { int d = sc.nextInt(); int v1 = sc.nextInt(); int v2 = sc.nextInt(); Main.getSum(n, d, v1, v2); } System.out.println(Main.sum); } } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator