题意:已知马走日,可以走八个方向,现用 · 表示可走的路,# 表示到达的点。
 给出马的一个初始位置,请输出马在三步内可以到达的点(图来表示)。
 思路:dfs暴力搜索即可。注意: # 不要返回,因为走三步时可能经过这个点。
using namespace std;
const ll maxn = 1e2 + 5;
//ll a[maxn],b[maxn];
bool vis[maxn];
int ans[maxn];
vector<int>v[maxn];
int n, m;
char a[maxn][maxn];
int dir[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 step)
{
        int tx,ty;
    for(int i=0;i<8;i++)
    {
        tx=x+dir[i][0];
        ty=y+dir[i][1];
        if(tx>=n||tx<0||ty>=m||ty<0||step==3)
        continue; ;
        a[tx][ty]='#';
        dfs(tx,ty,step+1);
    }
        return ;
}
int main()
{
    int x,y;
    cin>>n>>m;
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
            a[i][j]='.';
            cin>>x>>y;
            a[x][y]='#';
        dfs(x-1,y-1,0);
        for(int i=0;i<n;i++)
       printf("%s\n",a[i]);
        return 0;
}                
                









