标签:style blog io color ar java for sp div
感觉已经没啥心情用JAVA和PAT斗智斗勇了,会内存超限,是不是读进来就内存超限了?
二分做的方法有点bug,又写了一个merge sort的,想着百万数量级应该不会超时吧这都超时也太蛋疼了,结果居然内存爆了...
1 import java.util.*; 2 import java.io.*; 3 4 class FastReader{ 5 BufferedReader reader; 6 StringTokenizer tokenizer; 7 8 public FastReader(InputStream stream){ 9 reader = new BufferedReader(new InputStreamReader(stream), 1 << 10); 10 tokenizer = null; 11 } 12 13 public String next(){ 14 while (tokenizer == null || !tokenizer.hasMoreTokens()){ 15 try{ 16 tokenizer = new StringTokenizer(reader.readLine()); 17 } catch (Exception e){ 18 throw new RuntimeException(e); 19 } 20 } 21 22 return tokenizer.nextToken(); 23 } 24 25 public long next_long(){ 26 return Long.parseLong(next()); 27 } 28 29 public int next_int(){ 30 return Integer.parseInt(next()); 31 } 32 } 33 34 public class Main{ 35 static long[] seq_a; 36 static long[] seq_b; 37 38 public static void main(String[] args){ 39 FastReader reader = new FastReader(System.in); 40 int N; 41 42 N = reader.next_int(); 43 seq_a = new long[(int) N]; 44 for (int i = 0; i < N; i++) 45 seq_a[i] = reader.next_long(); 46 47 N = reader.next_int(); 48 seq_b = new long[(int) N]; 49 for (int i = 0; i < N; i++) 50 seq_b[i] = reader.next_long(); 51 52 int total = seq_a.length + seq_b.length; 53 int target = ((total & 0x1) != 0) ? total / 2 + 1 : total / 2; 54 55 int pa = 0, pb = 0; 56 int cnt = 1; 57 while (cnt < target){ 58 if (seq_a[pa] < seq_b[pb]) 59 pa++; 60 else 61 pb++; 62 63 cnt++; 64 } 65 66 long ans = Math.min(seq_a[pa], seq_b[pb]); 67 System.out.println(ans); 68 } 69 }
PAT,想说爱你不容易... 既然这么不待见JAVA为什么还给JAVA这么严苛的条件,给C++倒是很宽嘛,不用二分做都能过的时间...
标签:style blog io color ar java for sp div
原文地址:http://www.cnblogs.com/EpisodeXI/p/4067331.html