讨论 / [By YangHao] C++AC
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");

查看更多回复
提交回复