求助!!!WA全-1
查看原帖
求助!!!WA全-1
1053780
Gcx_20121118楼主2023/8/4 22:16
#include <bits/stdc++.h>
using namespace std;
typedef pair<int, int> pii;

int n, m, a, b, dis[1005][1005], dx[] = {-1, 1, 0, 0}, dy[] = {0, 0, -1, 1};
queue<pii> q;

void bfs()
{
    memset(dis, -1, sizeof(dis));
    for (int i = 1; i <= a; i++)
    {
        int x, y;
        cin >> x >> y;
        dis[x][y] = 0;
        q.push({x, y});
    }
    while (!q.empty())
    {
        pii t = q.front();
        q.pop();
        for (int i = 0; i <= 3; i++)
        {
            int nx = t.first + dx[i], ny = t.second + dy[i];
            if (nx < 1 || nx > n || ny < 1 || ny > m || dis[nx][ny] != -1) continue;
            dis[nx][ny] = dis[t.first][t.second] + 1;
            q.push({nx, ny});
        }
    }
}

int main()
{
    cin >> n >> m >> a >> b;
    bfs();
    for (int i = 1; i <= b; i++)
    {
        int x, y;
        cin >> x, y;
        cout << dis[x][y] << "\n";
    }
    return 0;
}
2023/8/4 22:16
加载中...