from collections import deque def in_bound(x, y, n): return 0 <= x < n and 0 <= y < n n = int(input()) maze = [list(input()) for _ in range(n)] visited = [[False]*n for _ in range(n)] dx = [-1, 0, 0, 1] dy = [0, -1, 1, 0] count = 0 for i in range(n): for j in range(n): if maze[i][j] == '#' and not visited[i][j]: q = deque() q.append((i, j)) visited[i][j] = True safe = False # 是否存在一个安全点(四周无洪水) while q: x, y = q.popleft() surrounded = True for d in range(4): nx, ny = x + dx[d], y + dy[d] if in_bound(nx, ny, n): if maze[nx][ny] == '.': surrounded = False elif maze[nx][ny] == '#' and not visited[nx][ny]: visited[nx][ny] = True q.append((nx, ny)) if surrounded: safe = True # 找到了至少一个四周都是 # 的点 # 如果整个区域没有任何安全点,就说明它会被完全淹没 if not safe: count += 1 print(count)