本地出问题了)求调,dfs函数内部有问题
查看原帖
本地出问题了)求调,dfs函数内部有问题
750535
Trubiacy_楼主2023/12/16 16:46
#include <bits/stdc++.h>
#define int long long
#define MAXN 0x3f3f3f3f3f3f3f3f
#define MINN -0x3f3f3f3f3f3f3f3f
using namespace std;

const int N=409;
int n,m,x,y,a[N][N],vis[N][N];
int l[9]={0,-2,-1,1,2,-2,-1,1,2};
int r[9]={0,1,2,2,1,-1,-2,-2,-1};

void dfs(int x,int y,int num);

signed main(){
    scanf("%lld%lld%lld%lld",&n,&m,&x,&y);
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            a[i][j]=-1;
        }
    }
    dfs(x,y,0);
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            printf("%lld ",a[i][j]);
        }
        printf("\n");
    }
    return 0;
}

void dfs(int x,int y,int num){
    a[x][y]=num;
    vis[x][y]=1;
    for(int i=1;i<=8;i++){
        for(int j=1;j<=8;j++){
            if(vis[x+l[i]][y+r[j]]==0){
                dfs(x+l[i],y+r[j],num+1);
            }
        }
    }
}
2023/12/16 16:46
加载中...