2 条题解
-
4
#include<bits/stdc++.h> using namespace std; int dx[4] = {-1, 1, 0, 0}; int dy[4] = {0, 0, -1, 1}; int n, m; vector<string> grid; void dfs(int x, int y) { grid[x][y] = '0'; for (int i = 0; i < 4; ++i) { int nx = x + dx[i], ny = y + dy[i]; if (nx >= 0 && nx < n && ny >= 0 && ny < m && grid[nx][ny] != '0') { dfs(nx, ny); } } } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cin >> n >> m; grid.resize(n); for (int i = 0; i < n; ++i) cin >> grid[i]; int cellCount = 0; for (int i = 0; i < n; ++i) for (int j = 0; j < m; ++j) if (grid[i][j] != '0') { cellCount++; dfs(i, j); } cout << cellCount << endl; return 0; }
信息
- ID
- 474
- 时间
- 1000ms
- 内存
- 64MiB
- 难度
- 5
- 标签
- 递交数
- 71
- 已通过
- 28
- 上传者