\#4 \#8 TLE \#10 WA
by DL_Lingkong @ 2023-07-18 16:28:16
@[LingKong666](/user/892470) 你以为你把函数名写成 `bfs()` 他就是 BFS?这明明是 DFS!
by LittleAcbg @ 2023-07-18 16:31:18
@[LuoJingjia](/user/531709) 问题是为什么会TLE
by DL_Lingkong @ 2023-07-18 16:35:06
@[LuoJingjia](/user/531709) 还有WA
by DL_Lingkong @ 2023-07-18 16:35:27
@[LingKong666](/user/892470) 因为你用dfs写的
by bad_wza @ 2023-07-21 21:06:46
## 你看看这个
```
#include<stdio.h>
struct node{
int x;
int y;
int step;
};
int book[405][405],flag[405][405],n,m;
int main(){
int x0,y0,i,j;
int next[8][2]={2,1,1,2,1,-2,2,-1,-1,2,-1,-2,-2,1,-2,-1};
struct node k[160005];
scanf("%d %d %d %d",&n,&m,&x0,&y0);
for(i=1;i<=n;i++)for(j=1;j<=m;j++)flag[i][j]=-1;
int tx,ty,tail=1,head=1;
k[tail].x=x0;
k[tail].y=y0;
k[tail].step=0;
book[x0][y0]=1;
tail++;
while(head<tail){
for(i=0;i<8;i++){
tx=k[head].x+next[i][0];
ty=k[head].y+next[i][1];
if(tx<=0||tx>n||ty<=0||ty>m)continue;
if(book[tx][ty]==0){
book[tx][ty]=1;
k[tail].x=tx;
k[tail].y=ty;
k[tail].step=k[head].step+1;
flag[tx][ty]=k[tail].step;
tail++;
}
}
head++;
}
for(i=1;i<=n;i++){
for(j=1;j<=m;j++)
if(i==x0&&j==y0)printf("0 ");
else printf("%-5d",flag[i][j]);
printf("\n");
}
return 0;
}
```
by __Sam__ @ 2023-11-20 20:45:37