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