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 |
Re:给的例子能通过,提交就WA,哪位大神帮忙看下~~In Reply To:给的例子能通过,提交就WA,哪位大神帮忙看下~~ Posted by:liujianlong at 2012-08-04 19:22:11 > #include <iostream> > #include <string.h> > #include <queue> > #include <stdio.h> > > > using namespace std; > > int visited[301][301]; > int move[8][2]={{-1,-2},{-1,2},{1,-2},{1,2},{-2,-1},{-2,1},{2,-1},{2,1}}; > struct node > { > int x,y; > int steps; > }start,end; > int m; > > > > int check(int x,int y) > { > if(x>=0&&x<=m&&y>=0&&y<=m) > { > return 1; > } > return 0; > > } > > > int bfs(int x,int y) > { > queue<node> que; > node tmp,next; > start.x=x; > start.y=y; > start.steps=0; > memset(visited,0,sizeof(visited)); > que.push(start); > while(!que.empty()) > { > tmp=que.front(); > visited[tmp.x][tmp.y]=1; > que.pop(); > for(int i=0;i<8;i++) > { > next.x=tmp.x+move[i][0]; > next.y=tmp.y+move[i][1]; > if(check(next.x,next.y)&&!visited[next.x][next.y]) > { > next.steps=tmp.steps+1; > que.push(next); > visited[next.x][next.y]=1; > if(next.x==end.x&&next.y==end.y) > { > return next.steps; > } > } > > } > } > return 0; > } > > > int main() > { > //freopen("in.txt","r",stdin); > int n,k; > cin>>n; > for(int i=0;i<n;i++) > { > cin>>m>>start.x>>start.y>>end.x>>end.y; > k=bfs(start.x,start.y); > cout<<k<<endl; > > } > return 0; > } check错误,改成小于m即可 Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator