求调,壶关qwq
查看原帖
求调,壶关qwq
1187524
gao0915楼主2025/8/5 00:15

求调qwq壶关

#include<bits/stdc++.h>
using namespace std;
int n,m,x,y;
int dx[8]={2,-2,2,-2,-1,1,-1,1};
int dy[8]={1,1,-1,-1,2,2,-2,-2};
int a[401][401];
int check(int a,int b)
{
    if(a<1||a>n||b<1||b>m)
        return 0;
    return 1;
}
void dfs(int x,int y,int step)
{
    int newx,newy;
    a[x][y]=step;
    for(int i=0;i<8;i++)
	{
        newx=x+dx[i];
        newy=y+dy[i];
        if(check(newx,newy)&&(step+1<a[newx][newy]||a[newx][newy]==-1))
            dfs(newx,newy,step+1);
    }
}
int main()
{
    cin>>n>>m;
    cin>>x>>y;
    memset(a,-1,sizeof(a));
    dfs(x,y,0);
    for(int i=1;i<=n;i++)
	{
        for(int j=1;j<=m;j++)
            printf("%-5d",a[i][j]);
        cout<<endl;
    }
    return 0;
}
2025/8/5 00:15
加载中...