2 条题解
-
-1
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; }****
- 1
信息
- ID
- 440
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- (无)
- 递交数
- 121
- 已通过
- 39
- 上传者