| ||||||||||
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 |
偶是菜鸟,谁能帮偶看看阿?WA死了,有什么没考虑到的呢?#include<iostream> using namespace std; typedef struct queuenode{ short i,j,p; }node; bool b[310][310]; node q[96100]; int s; short x,y,x0,y0,n; void BFS(int r){ int i,h; for (h=0;!(q[h].i==x && q[h].j==y);h++){ if (q[h].i-1>=0 && q[h].j-2>=0 && b[q[h].i-1][q[h].j-2]==false){ q[r].p=h; q[r].i=q[h].i-1; q[r++].j=q[h].j-2; b[q[h].i-1][q[h].j-2]=true; } if (q[h].i-2>=0 && q[h].j-1>=0 && b[q[h].i-2][q[h].j-1]==false){ q[r].p=h; q[r].i=q[h].i-2; q[r++].j=q[h].j-1; b[q[h].i-2][q[h].j-1]=true; } if (q[h].i-2>=0 && q[h].j+1<n && b[q[h].i-2][q[h].j+1]==false){ q[r].p=h; q[r].i=q[h].i-2; q[r++].j=q[h].j+1; b[q[h].i-2][q[h].j+1]=true; } if (q[h].i-1>=0 && q[h].j+2<n && b[q[h].i-1][q[h].j+2]==false){ q[r].p=h; q[r].i=q[h].i-1; q[r++].j=q[h].j+2; b[q[h].i-1][q[h].j+2]=true; } if (q[h].i+1<n && q[h].j-2>=0 && b[q[h].i+1][q[h].j-2]==false){ q[r].p=h; q[r].i=q[h].i+1; q[r++].j=q[h].j-2; b[q[h].i+1][q[h].j-2]=true; } if (q[h].i+2<n && q[h].j-1>=0 && b[q[h].i+2][q[h].j-1]==false){ q[r].p=h; q[r].i=q[h].i+2; q[r++].j=q[h].j-1; b[q[h].i+2][q[h].j-1]=true; } if (q[h].i+2<n && q[h].j+1<n && b[q[h].i+2][q[h].j+1]==false){ q[r].p=h; q[r].i=q[h].i+2; q[r++].j=q[h].j+1; b[q[h].i+2][q[h].j+1]=true; } if (q[h].i+1<n && q[h].j+2<n && b[q[h].i+1][q[h].j+2]==false){ q[r].p=h; q[r].i=q[h].i+1; q[r++].j=q[h].j+2; b[q[h].i+1][q[h].j+2]=true; } } for (i=h,s=0;q[i].p!=-1;i=q[i].p,s++) ; } int main(){ int i,j,r,k; cin>>k; while(k--!=0){ cin>>n; cin>>x0>>y0; cin>>x>>y; if ((x0==x && y0==y)) cout<<0<<endl; else{ for (i=0;i<n;i++) for (j=0;j<n;j++) b[i][j]=false; s=0;r=0; q[r].p=-1; q[r].i=x0; q[r++].j=y0; b[x0][y0]=true; BFS(r); cout<<s<<endl; } } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator