| ||||||||||
| 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 | |||||||||
BFS版本#include<stdio.h>
typedef struct
{
int x,y;
}POINT;
int main(void)
{
int i,j,maze[5][5],used[5][5];
int front,rear;
POINT u,v,q[10000],path[5][5];
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
used[i][j]=0;
scanf("%d",&maze[i][j]);
}
}
front=rear=0;
q[0].x=q[0].y=0;
used[0][0]=1;
path[0][0].x=path[0][0].y=0;
while(front<=rear)
{
u.x=q[front].x;
u.y=q[front].y;
front++;
if(u.x==4&&u.y==4)
break;
if(!used[u.x+1][u.y]&&maze[u.x+1][u.y]!=1&&u.x+1<=4)
{
++rear;
q[rear].x=u.x+1;
q[rear].y=u.y;
used[u.x+1][u.y]=1;
path[u.x+1][u.y].x=u.x;
path[u.x+1][u.y].y=u.y;
}
if(!used[u.x][u.y+1]&&maze[u.x][u.y+1]!=1&&u.y+1<=4)
{
++rear;
q[rear].x=u.x;
q[rear].y=u.y+1;
used[u.x][u.y+1]=1;
path[u.x][u.y+1].x=u.x;
path[u.x][u.y+1].y=u.y;
}
}
u.x=u.y=4;
while(u.x!=0||u.y!=0)
{
printf("(%d, %d)\n",4-u.x,4-u.y);
v.x=path[u.x][u.y].x;
v.y=path[u.x][u.y].y;
u.x=v.x;
u.y=v.y;
}
printf("(4, 4)\n");
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator