讨论 / 求大牛解释...第5组数据怎么是错的???
xyf1996xyf 2013-03-15 04:21:00
点我顶贴 收藏 删除
#include <stdio.h>

#include <stdlib.h>

long eg[2010][2010],mark[2010][2010];

int fx[5]={0,-1,0,1,0};

int fy[5]={0,0,1,0,-1};

struct node{int x;int y;int step;}now,q[40001];

int main()

{

long n,m,i,j,step,head,tail,x1,x2,y1,y2;

scanf("%ld %ld",&n,&m);

for(i=1;i<=n;i++)

for(j=1;j<=m;j++)

scanf("%ld",&eg[i][j]);

scanf("%ld %ld",&x1,&y1);

scanf("%ld %ld",&x2,&y2);

head=1;tail=1;q[1].x=x1;q[1].y=y1;q[1].step=0;

memset(mark,0,sizeof(mark));

mark[x1][y1]=1;

if(eg[x2][y2]==1)

printf("No Answer!");

while(head<=tail)

{

now=q[head];

if((now.x==x2)&&(now.y==y2))

{

printf("%d",now.step);

}

for(i=1;i<=4;i++)

{

if ((now.x+fx[i]>0)&&(now.x+fx[i]<=n)&&(now.y+fy[i]>0)&&(now.y+fy[i]<=m))

if((eg[now.x+fx[i]][now.y+fy[i]]==0)&&(mark[now.x+fx[i]][now.y+fy[i]]==0))

{

tail++;

q[tail].x=now.x+fx[i];

q[tail].y=now.y+fy[i];

q[tail].step=now.step+1;

mark[now.x+fx[i]][now.y+fy[i]]=1;

}

}

head++;

}

return 0;

}

#1 xyf1996xyf@2013-03-15 04:21:00
回复 删除
没有人么?
#2 2017beijiang99@2018-04-21 05:33:35
回复 删除
I didn't
#3 2017beijiang99@2018-04-21 05:35:06
回复 删除
What's your QQ ? I at you。
#4 2017beijiang99@2018-04-21 05:36:12
回复 删除
QQ邮箱,我发给你。刚刚开玩笑!不要介意哈。
#5 2017beijiang99@2018-04-21 05:36:47
回复 删除
QQ邮箱,我发给你。刚刚开玩笑!
#6 2017beijiang99@2018-04-21 05:36:58
回复 删除
QQ邮箱,我发给你。
#7 2017beijiang99@2018-04-21 05:37:05
回复 删除
QQ邮箱,我发给你
#8 2017beijiang99@2018-04-21 05:37:17
回复 删除
QQ邮箱,我发给你!
#9 2017beijiang99@2018-04-21 05:37:28
回复 删除
QQ邮箱,我发给你/
#10 2017beijiang99@2018-04-21 05:37:33
回复 删除
QQ邮箱,我发给你]
查看更多回复
提交回复