YangHao 2017-09-05 22:51:05
点我顶贴
收藏
删除
调了好久,总算调出来了=w=
把代码给你们look一眼~
scanf("%d%d",&sx,&sy);
memset(qx,0,sizeof(qx));
memset(qy,0,sizeof(qy));
memset(qd,0,sizeof(qd));
memset(tf,1,sizeof(tf));
tf[sx][sy]=0;
qx[1]=sx;qy[1]=sy;qd[1]=0;
for(int i=1;i<=3;i++)
{
if(sx==bx[i]&&sy==by[i])
{
printf("No Answer");
return 0;
}
}
while(st!=ed)
{
int xx=qx[st],xy=qy[st];
for(int i=1;i<=8;i++)
{
int nx=xx+fx[i],ny=xy+fy[i];
bool stf=1;
for(int j=1;j<=3;j++)
if(nx==bx[j]&&ny==by[j])
{stf=0;break;}
if(nx>=1&&ny>=1&&nx<=10&&ny<=9&&stf&&tf[nx][ny])
{
qx[ed]=nx;qy[ed]=ny;qd[ed++]=qd[st]+1;tf[nx][ny]=0;
if(nx==1&&ny==5)
{
printf("%d",qd[ed-1]);
return 0;
}
}
}
st++;
}
printf("No Answer");