2 条题解

  • -1
    @ 2026-6-16 18:48:57
    using namespace std;
    
    int main() {
        ios::sync_with_stdio(false);
            cin.tie(nullptr);
                freopen("hiking.in", "r", stdin);
                    freopen("hiking.out", "w", stdout);
    
                        int n, m;
                            cin >> n >> m;
                                vector<string> g(n);
                                    for (int i = 0; i < n; ++i) cin >> g[i];
    
                                        vector<vector<int>> vis(n, vector<int>(m));
                                            int ans = 0;
                                                int dx[4] = {-1, 1, 0, 0}, dy[4] = {0, 0, -1, 1};
    
                                                    for (int i = 0; i < n; ++i) {
                                                            for (int j = 0; j < m; ++j) {
                                                                        if (g[i][j] != '#' || vis[i][j]) continue;
                                                                                    ++ans;
                                                                                                queue<pair<int,int>> q;
                                                                                                            q.push({i, j});
                                                                                                                        vis[i][j] = 1;
                                                                                                                                    while (!q.empty()) {
                                                                                                                                                    auto [x, y] = q.front(); q.pop();
                                                                                                                                                                    for (int k = 0; k < 4; ++k) {
                                                                                                                                                                                        int nx = x + dx[k], ny = y + dy[k];
                                                                                                                                                                                                            if (nx < 0 || nx >= n || ny < 0 || ny >= m) continue;
                                                                                                                                                                                                                                if (vis[nx][ny] || g[nx][ny] != '#') continue;
                                                                                                                                                                                                                                                    vis[nx][ny] = 1;
                                                                                                                                                                                                                                                                        q.push({nx, ny});
                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                                                                }
    
                                                                                                                                                                                                                                                                                                                    cout << ans << '\n';
                                                                                                                                                                                                                                                                                                                        return 0;
                                                                                                                                                                                                                                                                                                                        }****
    

    信息

    ID
    440
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    (无)
    递交数
    122
    已通过
    40
    上传者