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 |
搞掂了,过了~自己低级错误In Reply To:java用LinkedList为什么会WA啊~ Posted by:qq361119908 at 2009-09-10 20:41:20 > import java.util.*; > public class a1915 > { > int beginX; > int beginY; > int endX; > int endY; > int n; > int k; > int[][] num; > int[][] map; > LinkedList<Integer> v1; > LinkedList<Integer> v2; > public a1915() > { > Scanner r=new Scanner(System.in); > k=r.nextInt(); > while (k>0) > { > n=r.nextInt(); > map=new int[n][n]; > num=new int[n][n]; > beginX=r.nextInt(); > beginY=r.nextInt(); > endX=r.nextInt(); > endY=r.nextInt(); > v1=new LinkedList<Integer>(); > v2=new LinkedList<Integer>(); > v1.add(beginX); > v2.add(beginY); > map[beginX][beginY]=1; > while(v1.isEmpty()!=true&&v2.isEmpty()!=true) > { > int X=v1.poll(); > int Y=v2.poll(); > bfs(X,Y); > } > System.out.println(num[endX][endY]); > k--; > } > } > public void bfs(int x,int y) > { > if (x==endX&&y==endY) > { > return; > } > if (x-2>=0&&y-1>=0&&map[x-2][y-1]==0) > { > num[x-2][y-1]=num[x][y]+1; > map[x-2][y-1]=1; > v1.add(x-2); > v2.add(y-1); > } > if (x-2>=0&&y+1<n&&map[x-2][y+1]==0) > { > num[x-2][y+1]=num[x][y]+1; > map[x-2][y+1]=1; > v1.add(x-2); > v2.add(y+1); > } > if (x-1>=0&&y-2>=0&&map[x-1][y-2]==0) > { > num[x-1][y-2]=num[x][y]+1; > map[x-1][y-2]=1; > v1.add(x-1); > v2.add(y-2); > } > if (x-1>=0&&y+2<n&&map[x-1][y+2]==0) > { > num[x-1][y+2]=num[x][y]+1; > map[x-1][y+2]=1; > v1.add(x-1); > v2.add(y+2); > } > if (x+1<n&&y-2>=0&&map[x+1][y-2]==0) > { > num[x+1][y-2]=num[x][y]+1; > map[x+1][y-2]=1; > v1.add(x+1); > v2.add(y-2); > } > if (x+1<n&&y+2<n&&map[x+1][y+2]==0) > { > num[x+1][y+2]=num[x][y]+1; > map[x+1][y+2]=1; > v1.add(x+1); > v2.add(y+2); > } > if (x+2<n&&y-1>=0&&map[x+2][y-1]==0) > { > num[x+2][y-1]=num[x][y]+1; > map[x+2][y-1]=1; > v1.add(x+2); > v2.add(y-1); > } > if (x+2<n&&y+1<n&&map[x+1][y+1]==0) > { > num[x+2][y+1]=num[x][y]+1; > map[x+2][y+1]=1; > v1.add(x+1); > v2.add(y+1); > } > > } > public static void main(String[] args) > { > a1915 t=new a1915(); > } > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator