| ||||||||||
| 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写的,大牛帮忙看下为啥WAimport java.io.*;
import java.util.*;
public class Main {
public static int[][] dir = {{-2,-1},{-2,1},{-1,-2},{-1,2},{1,-2},{1,2},{2,-1},{2,1}};
public static int times;
public static int m,n;
public static boolean[][] flag = new boolean[50][50];
public static boolean tag;
public static int[] tracex = new int[50];
public static int[] tracey = new int[50];
public static void DFS(int i, int j)
{
if(tag) return;
int x,y;
times++;
tracex[times] = i;
tracey[times] = j;
if(times == m*n)
{
tag = true;
return;
}
flag[i][j] = false;
for(int p=0;p<8;p++)
{
x = i+dir[p][1];
y = j+dir[p][0];
if(x>0&&x<=m&&y>0&&y<=n&&flag[x][y])
{
DFS(x,y);
times--;
}
}
flag[i][j]=true;
}
public static void main(String[] args)
{
int i,j,k;
Scanner cin = new Scanner(new BufferedInputStream(System.in));
int count = cin.nextInt();
for(i=1;i<=count;i++)
{
times = 0;
tag = false;
m = cin.nextInt();
n = cin.nextInt();
for(k=1;k<50;k++)
for(j=1;j<50;j++)
flag[k][j]=true;
DFS(1,1);
System.out.println("Scenario #" + i +":");
if(tag)
{
for(j=1;j<=m*n;j++)
{
char c = (char) (tracey[j]+64);
System.out.print(c);
System.out.print(tracex[j]);
}
System.out.println();
}
else
System.out.println("Impossible");
if(i!=count)
System.out.println();
}
}
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator