@[zhoukangyang](/space/show?uid=173660) 改成bfs
by 单曦增 @ 2019-04-24 17:39:14
广搜啊
by wxy_god @ 2019-04-24 17:39:34
~~IDA*~~
by Ireliaღ @ 2019-04-24 17:40:11
A*~~
by nofind @ 2019-04-24 18:42:21
~~打表~~
by dreagonm @ 2019-04-24 18:45:57
@[zhoukangyang](/space/show?uid=173660)
帮你改了一下。
```cpp
#include<bits/stdc++.h>
using namespace std;
int a[401][401];
const int DEP=1000;
int n,m,sn,sm;
int det[8][2] = {{2,1},{2,-1},{-2,1},{-2,-1},{-1,-2},{1,2},{1,-2},{-1,2}};
void dfs(int x,int y,int st)
{
if(st>DEP)return;
a[x][y] = st;
for(int i = 0; i < 8; i++)
{
int nx=x+det[i][0],ny=y+det[i][1];
if(nx <= 0 || nx > n)continue;
if(ny <= 0 || ny > m)continue;
if(a[nx][ny] != -1 && a[nx][ny] <= st+1)continue;
dfs(nx,ny,st+1);
}
}
int main()
{
memset(a,-1,sizeof(a));
scanf("%d%d%d%d",&n,&m,&sn,&sm);
dfs(sn,sm,0);
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= m; j++)
{
printf("%-5d", a[i][j]);
}
printf("\n");
}
return 0;
}
```
by Smile_Cindy @ 2019-04-24 18:57:16