这题这样写为什么错了啊??
http://acm.hdu.我的代码是这样的
#include<stdio.h>
int mp[10][10],flag[10][10],n,m,time[10][10],time1[10][10],min;
struct zb
{
int x;
int y;
}beg,end;
int DFS(int x1,int y1)//为什么DFS这样写 不能吧所有的结点都扫到了啊,我错哪了啊 请帮我看看啊
{
int _x[4]={0,1,0,-1};
int _y[4]={1,0,-1,0};
int x,y,i;
if(mp[x1][y1]==3&&time[x1][y1]>0)
return 1;
if(time[x1][y1]<=0)
return 0;
if(mp[x1][y1]==4&&time>0)
time[x1][y1]=6;
if(mp[x1][y1]==4&&time[x1][y1]<=0)
return 0;
for(i=0;i<4;i++)
{
x=x1+_x[i];
y=y1+_y[i];
if(x>=0&&x<n&&y>=0&&y<m&&flag[x][y]==0&&mp[x][y]!=0)
{
flag[x][y]=1;
time[x][y]=time[x1][y1]-1;
time1[x][y]=time1[x1][y1]+1;
if(DFS(x,y))
{
if(min>time1[x][y])
min=time1[x][y];
}
else
flag[x][y]=0;
}
}
return 0;
}
int main()
{
int i,j,t;
while(scanf("%d",&t)!=EOF)
{
while(t--)
{
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
flag[i][j]=0;
scanf("%d",&mp[i][j]);
if(mp[i][j]==2)
{
beg.x=i;
beg.y=j;
}
if(mp[i][j]==3)
{
end.x=i;
end.y=j;
}
time1[i][j]=0;
}
time[beg.x][beg.y]=6;
min=99999999;
DFS(beg.x,beg.y);
if(min!=99999999)
{
printf("%d\n",min);
}
else
printf("-1\n");
}
}
return 0;
}
还有像这种题的 求最少时间什么的真正的应该怎么写啊
这题(http://acm.hdu.)也是这类型的,
我的不会写,急死了,求大家帮帮忙啊