| Time Limit: 1000MS | Memory Limit: 30000K | |
| Total Submissions: 21919 | Accepted: 10223 |
Description

Input
Output
Sample Input
3 8 0 0 7 0 100 0 0 30 50 10 1 1 1 1
Sample Output
5 28 0
Source
#include <cstdio>
#include <cstring>
const int maxn=100000;//开始设立的是1000,导致一直wa啊
typedef struct Queue
{
int x,y,count;
}Queue;
Queue que[maxn];//用数组模拟队列
bool visit[310][310];
int dir[8][2]={{-2,1},{-2,-1},{-1,2},{-1,-2},{1,2},{1,-2},{2,1},{2,-1}};//方向数组
int l,c,d;
void bfs(int x,int y)
{
memset(visit,false,sizeof(visit));//初始化
int front=0,rear=0;
int fx,fy,i;
que[rear].x=x;//入队
que[rear].y=y;
que[rear++].count=0;
visit[x][y]=true;
while(front<rear)//队不为空
{
Queue q=que[front++];
if(q.x==c && q.y==d)//搜索到结果
{
printf("%d\n",q.count);
break;
}
for(i=0;i<8;i++)
{
fx=q.x+dir[i][0];
fy=q.y+dir[i][1];
if(fx>=0 && fy >=0 && fx<l && fy <l && !visit[fx][fy])//限制条件,这里也要注意,很多人在这里wa的
{
visit[fx][fy]=true;//标记访问
que[rear].x=fx;//入队
que[rear].y=fy;
que[rear++].count=q.count+1;
}
}
}
}
int main()
{
int t,a,b;
scanf("%d",&t);
while(t--)
{
memset(que,0,sizeof(que));
scanf("%d",&l);
scanf("%d%d",&a,&b);
scanf("%d%d",&c,&d);
bfs(a,b);
}
return 0;
}
#include <cstdio>
#include <cstring>
typedef struct Queue
{
int x,y;
int count;
}Queue;
const int maxn=1000;
int dir[8][2]={{-2,1},{-2,-1},{-1,2},{-1,-2},{1,2},{1,-2},{2,1},{2,-1}};
bool visit[maxn][maxn];
Queue queue[maxn];
int c,d,l;
void bfs(int x,int y)
{
int front=0,rear=0;
int i,fx,fy;
queue[rear].x=x;
queue[rear].y=y;
queue[rear++].count=0;
visit[x][y]=1;
while(front<rear)
{
Queue q=queue[front++];
if(q.x==c && q.y==d)
{
printf("%d\n",q.count);
break;
}
for(i=0;i<8;i++)
{
fx=q.x+dir[i][0];
fy=q.y+dir[i][1];
if( fx>= 0 && fy>= 0 && fx <l && fy <l&& !visit[fx][fy])
{
visit[fx][fy]=1;
queue[rear].x=fx;
queue[rear].y=fy;
queue[rear++].count=q.count+1;
}
}
}
}
int main()
{
int t;
int a,b;
scanf("%d",&t);
while(t--)
{
memset(queue,0,sizeof(queue));
//memset(visit,0,sizeof(visit));
scanf("%d",&l);
scanf("%d%d",&a,&b);
scanf("%d%d",&c,&d);
bfs(a,b);
}
return 0;
}poj 1915 Knight Moves (bfs搜索),布布扣,bubuko.com
原文地址:http://blog.csdn.net/whjkm/article/details/38556409