本文共 791 字,大约阅读时间需要 2 分钟。
//Knight Moves : http://poj.org/problem?id=1915#include#include #include using namespace std;int l,sx,sy,ex,ey;bool mark[305][305];int go[8][2]={-2,1,-1,2,1,2,2,1,2,-1,1,-2,-1,-2,-2,-1};struct node{ int x,y,step;};void bfs(){ memset(mark,0,sizeof(mark)); mark[sx][sy] = 1; queue q; node s,n; //n是一个坑点,如果不用n,只用s,会导致下一步的选择对当前步产生影响; s.x = sx,s.y = sy,s.step = 0; q.push(s); while(!q.empty()) { s = q.front(); q.pop(); if(s.x == ex&&s.y == ey) { cout< < =0&&ny>=0&&!mark[nx][ny]) { mark[nx][ny] = 1; n.x = nx,n.y = ny; // 注意 n.step = s.step + 1; //注意 q.push(n); //注意 } } }}int main(){ int T; cin>>T; while(T--) { cin>>l>>sx>>sy>>ex>>ey; if(sx==ex&&sy==ey) cout<<0<
转载地址:http://nrlhn.baihongyu.com/