社区讨论

求助!!!WA全-1

P1332血色先锋队参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@lo1zb870
此快照首次捕获于
2023/10/23 05:26
2 年前
此快照最后确认于
2023/11/03 05:51
2 年前
查看原帖
CPP
#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;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...