首页 > 试题广场 >

没挡住洪水

[编程题]没挡住洪水
  • 热度指数:2329 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}吴铭市近日洪水肆虐,然而市政部门紧急在若干方格上砌起围墙是豆腐渣工程,被洪水中的强腐蚀性物质一氧化二氢分解了,只剩下了用 `#` 表示的空地。

\hspace{15pt}地图用大小为 N \times N 的字符矩阵描述:`'.'` 表示已经被洪水淹没的区域,`'#'` 表示空地。四联通的 `'#'` 组成一个区域

\hspace{15pt}聪明睿智的吴铭市防洪抗灾紧急委员会官员在全市防洪抗灾紧急会议上指出,在接下来的一天中,洪水仍将上涨,所有与已经被洪水淹没的区域相邻(上下左右方向)的空地格子都会被淹没。请计算在此次上涨后,吴铭市中将有多少个区域被完全淹没。

输入描述:
\hspace{15pt}第一行输入整数 N\left(1\leqq N\leqq 1000\right)
\hspace{15pt}随后 N 行,每行 N 个字符构成吴铭市的地图,只含 `'.'` 与 `'#'`。已知边界四条边全部为已经被洪水淹没的区域。


输出描述:
\hspace{15pt}输出一个整数,表示一天后会完全消失的空地区域数量。
示例1

输入

1
.

输出

0
头像 巴巴拉拉1
发表于 2025-07-26 01:49:31
遍历地图,寻找‘#’,即空地单元格。用bfs遍历该空地区域,在遍历四个方向的同时判断该空地单元格是否与水相邻,若只要该区域有一个单元格与水不相邻,则该块空地区域不会被完全淹没。 #include <iostream> #include <queue> #include < 展开全文
头像 HIKong
发表于 2025-12-24 13:26:27
样例二:输入5......###..###..###......输出:0 import sys from collections import deque # 算法步骤 # 1、输入 N 和地图 grid[N][N]。 # 2、找到所有区域(用BFS/DFS连通块划分)对原始地图中的所有 # 展开全文
头像 牛客242693846号
发表于 2025-07-28 09:09:53
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 _ i 展开全文
头像 冷艳的西红柿刷牛客
发表于 2025-10-28 14:33:04
#include <iostream> #include <string> #include <queue> #include <algorithm> using namespace std; struct Grid { int x; int 展开全文
头像 ikun_ac
发表于 2025-08-08 23:55:26
题目链接 没挡住洪水 题目描述 给定一个 的字符矩阵,'.' 表示已被洪水淹没的区域,'#' 表示空地。四联通的 '#' 组成一个区域。已知四条边界均为 '.'。洪水在接下来的一天会上涨:所有与 '.' 相邻(上下左右)的 '#' 都会被淹没。问上涨后有多少个 '#' 区域会被完全淹没。 输入: 展开全文
头像 草海桐
发表于 2025-09-03 12:56:27
package main import ( "bufio" "fmt" "os" ) func main() { var n int fmt.Scanf("%d", &n) 展开全文
头像 丨阿伟丨
发表于 2025-08-29 12:05:34
题目链接 挡住洪水 题目描述 给定一个 的地图,其中 . 代表洪水区域,# 代表空地。四连通的 # 组成一个独立的空地区域。在一天后,所有与洪水区域 . 相邻(上下左右)的空地 # 都会被洪水淹没。 任务是计算一天后,有多少个独立的空地区域会被完全淹没。 解题思路 本题的目标是统计被完全淹没的空地 展开全文