C. 为什么会超内存啊!!!
}
import java.io.*; import java.nio.channels.NonWritableChannelException; import java.text.DateFormatSymbols; import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.PriorityQueue; import java.util.Scanner; import java.util.HashMap; import java.util.HashSet; public class Main { static BufferedReader cin=new BufferedReader(new InputStreamReader(System.in)); static PrintWriter cout=new PrintWriter(new OutputStreamWriter(System.out)); static StreamTokenizer st=new StreamTokenizer(cin); static Scanner sc=new Scanner(cin); static int MAXN=2001; static int base=2005; static int n,m; static char board[][]=new char[MAXN][MAXN]; static int dir[][]= {{1,0},{0,1},{-1,0},{0,-1}}; static HashSet<Integer> bset=new HashSet<Integer>(); static boolean vist[][]=new boolean[MAXN][MAXN]; public static void main(String[] args)throws IOException { int t=nextInt(); while(t-->0) { n=nextInt(); m=nextInt(); int blue=0; boolean win=false; //cin.readLine(); for(int i=0;i<n;i++) { String in=cin.readLine(); for(int j=0;j<m;j++) { board[i][j]=in.charAt(j); if(board[i][j]=='.') blue++; vist[i][j]=false; } } if(blue==n*m) { cout.println("Blue"); continue; } for(int i=0;i<n;i++) for(int j=0;j<m;j++) { if(board[i][j]=='.'||vist[i][j]) continue; bset.clear(); vist[i][j]=true; dfs(i,j); if(bset.size()==blue) win=true; } cout.println(win?"Red":"Draw"); } end(); } public static void dfs(int x,int y) { for(int i=0;i<4;i++) { int xm=x+dir[i][0]; int ym=y+dir[i][1]; if(xm<0||xm>=n||ym<0||ym>=m||vist[xm][ym]) continue; int v=xm*base+ym; if(board[xm][ym]=='.') bset.add(v); else { vist[xm][ym]=true; dfs(xm, ym); } } } public static void end() throws IOException { cout.flush(); cout.close(); cin.close(); } public static double nextDouble()throws IOException{ st.nextToken(); return st.nval; } public static int nextInt() throws IOException { st.nextToken(); return (int)st.nval; } public static long nextLong()throws IOException{ st.nextToken(); return (long) st.nval; } public static String next()throws IOException{ st.nextToken(); return st.sval; } }