求助
查看原帖
求助
547446
Nevergonna_CCF楼主2021/12/21 19:13

全WA和RE

#include <iostream>
#include <algorithm>
#include <iomanip>
using namespace std;
int vis[101][101], mapp[101][101], nx[9] = { 1,2,2,1,-1,-2,-2,-1 }, ny[9] = { 2,1,-1,-2,2,1,-1,-2 };
int n, m, mx, my;
void dfs(int x, int y, int s) {
    if (mapp[x][y] != -1) mapp[x][y] = min(s, mapp[x][y]);
    else mapp[x][y] = s;
    for (int i = 0; i < 8; i++) {
        int sx = x + nx[i];
        int sy = y + ny[i];
        if (sx >= 1 && sx <= n && sy >= 1 && sy <= m && vis[sx][sy] == 1) {
            vis[sx][sy] = 0;
            dfs(sx, sy, s + 1);
        }
    }
    return;
}

int main() {
    memset(mapp, -1, sizeof(mapp));
    memset(vis, 1, sizeof(vis));
    cin >> n >> m >> mx >> my;
    dfs(mx, my, 0);
    for (int i = 1; i <= n; i++) {
        cout << mapp[i][1];
        for (int j = 2; j <= m; j++) {
            cout << setw(5) << mapp[i][j];
        }
        cout << endl;
    }
    return 0;
}
2021/12/21 19:13
加载中...