首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【第64题】 广度优先搜索(BFS)8连刷(四):AtCoder AGC033 A - Darker and Darker

【第64题】 广度优先搜索(BFS)8连刷(四):AtCoder AGC033 A - Darker and Darker

作者头像
小码匠
发布2023-08-31 15:14:10
发布2023-08-31 15:14:10
1900
举报

题目

题目原文请移步下面的链接

  • https://www.luogu.com.cn/problem/AT_agc033_a
    • 参考题解:https://www.luogu.com.cn/problem/solution/AT_agc033_a
  • 标签:BFS多点开始搜索

题解

  • 小码匠思路
    • 是很典型的BFS问题,所有的黑块是同时往外扩散的,所以把所有初始黑块要一起存进队列里,后面就是常见的bfs打发了
  • 官方题解
    • 题解大家可移步看这里,很多童鞋写了各种解法
      • https://www.luogu.com.cn/problem/solution/AT_agc033_a
代码
代码语言:javascript
复制
#include <bits/stdc++.h>

using namespace std;
#define endl '\n';

char a[1003][1003];
int n, m, ans = 0;
int len[1003][1003];
int b[1003][1003];
const int dx[4] = {-1, 1, 0, 0};
const int dy[4] = {0, 0, -1, 1};

struct edge {
    int x, y;
};

queue<edge> v;

bool is(int x, int y) {
    return (x >= 0 && x < n && y >= 0 && y < m) && !b[x][y];
}

void bfs() {
    while (!v.empty()) {
        edge k = v.front();
        v.pop();
        for (int i = 0; i < 4; ++i) {
            if (is(k.x + dx[i], k.y + dy[i])) {
                v.push({k.x + dx[i], k.y + dy[i]});
                b[k.x + dx[i]][k.y + dy[i]] = true;
                len[k.x + dx[i]][k.y + dy[i]] = len[k.x][k.y] + 1;
                ans = max(len[k.x + dx[i]][k.y + dy[i]], ans);
            }
        }
    }
}

void best_coder() {
    cin >> n >> m;
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < m; ++j) {
            cin >> a[i][j];
            if (a[i][j] == '#') {
                v.push({i, j});
                b[i][j] = true;
            }
        }
    }
    bfs();
    cout << ans;
}

void happy_coder() {
}

int main() {
    // 提升cin、cout效率
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);

    // 小码匠
    best_coder();

    // 最优解
    // happy_coder();

    // 返回
    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-07-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小码匠和老码农 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目
  • 题解
    • 代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档